This application is a project for ITSC 3155 Software Engineering at UNC Charlotte, made by me, Ryan Hull.
Built from scratch using the Ionic Framework with Angular, and Capacitor/ Cordova Plugins.
- Showcase an application of the engineering process
- Showcasing an application of the development cycle
- Following the Agile model
- Practicing Test Driven Development
- Knowledge of Common Design Patterns
- Showcase the use of current and active frameworks
- Built using Angular.
- Built to be a cross-platform, cloud-based notes application for use on web, android, iOS, and desktop.
- Uses a Google Firebase, Firestore Database for the authentication and storage of users, and notes.
- See package.json for full list of dependencies and plugins.
- Clone repository
git clone https://github.com/HullRyan/IonicNotesApp
- Create Google Firebase Project and Firestore Database
- Create collections for users, notes. See DATABASE.md
- Create and place your Firebase SDK Config snippet into /src/environments/environment.ts
- Run
npm install
from root to install dependencies - Run
ionic serve
or build to desired platform withionic build
and deploy - Enjoy 📓✏️
Material Design | iOS |
---|---|
Material Design | iOS |
---|---|
Material Design | iOS |
---|---|
Material Design | iOS |
---|---|
Material Design | iOS |
---|---|
Material Design | iOS |
---|---|
Windows |
---|
-
Plan: Local Notes and Reminders App
- Features extracted from user stories:
- Save/ Delete Notes
- Set Single/ Recurring notifications
- Clear set notifications
- Features extracted from user stories:
-
Design: Ionic Framework base application
- Notes List page
- Note Details/ Edit page
- Note service
-
Development: Implement local storage for notes and reminders
- Capacitor - Cordova plugins
- Notes service
- Notification service
-
Testing: Tested all functions made with built in data
- Made notes, deleted notes, set notification, deleted notification
-
Review: Missing cross-platform functionality
- Added user stories based on feedback
- Needed: Responsive UI vs current Static UI
- Needed: Cloud database for notes
- Added user stories based on feedback
- Plan: Cloud Notes App with Reminders
- Features extracted from user stories:
- Account creation/ authentication
- Note storage in Cloud database
- Responsive UI for cross-platform use
- Features extracted from user stories:
- Design: Sprint 1 UI Base
- Login/Home page
- Register page
- Notes List page
- Note Details/ Edit page
- Development: Implement Cloud functionality
- Firestore database
- Responsive UI with HTML and CSS styling
- Angular authentication service
- Update note service for use with database
- Attached notification service to note service through notification interface
- Testing: Testing authentication, note functions, reminders, UI
- Tested all tests from Sprint 1
- Tested account creation, deletion, sign in, sign out
- Tested UI on platforms with varying sizes (Web, Android, iOS, Windows)
- Review: Missing functionality for complex data in note, notification control and settings
- Added user stories based on feedback
- Needed: Color tag functionality and control
- Needed: Advanced Text Editor in place for Note body
- Needed: Notifications view page
- Needed: Updated database collection and fields for search and sorting
- Added user stories based on feedback
- Plan: Markdown Notes App with advanced Notification Integration
- Features extracted from user stories:
- Markdown Editor for Note body
- Note colors customization
- Features extracted from user stories:
- Design: Sprint 2 UI Base
- Login/ Home page
- Register page
- Notes List page
- Note Details/ Edit Page
- Development: Implement Quill Rich Text Editor
- Custom toolbar for wanted features
- Add color tag functions
- Update notes list
- Testing: Repeat Unit Tests
- Review: Missing notification control and settings, note organization
- Needed: Notifications view page
- Needed: Updated database collection and fields for search and sorting
See Spec files for testing processes and functions.
Unit Testing using Karma and Jasmine |
---|