Skip to content

This is a web-based note taking application that allows its users to create, view, delete and edit notes. The notes contain a title, text content, image, URL, one or multiple categories and voice recordings. Users can either record their voices directly in the web application or upload voice documents into texts.

Notifications You must be signed in to change notification settings

eceokutan/notes-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Section 1: Features

This is a web-based note taking application that allows its users to create, view, delete and edit notes. The notes contain a title, text content, image, URL, one or multiple categories and voice recordings. Users can either record their voices directly in the web application or upload voice documents into texts. This notes app lets users save the notes that they create and gives them multiple ways of viewing the notes they created. First of all, in the main page the application shows the most recent 3 notes that the user created (for easy access purposes). The user then can press the “View All Notes” to access all of the notes they took. They can list their notes in insertion order or alphabetical order, or they can view their notes by filtering by categories. The user can also search notes by keywords, where the notes with corresponding title or content will appear. The user can view the note’s name and a summary of the note while viewing the listed notes and once pressed they access the entirety of the code. The user can choose to edit notes, where they can edit every aspect of the note and re-record their voice. The web application also gives the user the freedom to create and delete custom categories which they can later assign their notes to. Data persistence is achieved by implementing a JSON-based storage hence all user data is retained between sessions, so data doesn't get lost. The application also has a user-friendly and responsive user interface to improve user experience.

Section 2: Programming and Structure

This program follows object-oriented principles. The core data structure –the note structure– is kept encapsulated in a Note class that provides the entirety of the code with the key properties of a note such as title, text, image path, and more. Supporting the Note class, the NoteManager singleton centralises all of the logic related to notes such as storing, deleting and retrieval. To extend functionality and organize data in a more efficient manner, NoteIndex class was used. This class provides some functionalities such as summarizing notes and functions for sorting notes. This design also abides by the Single Responsibility Principle as NoteManager focuses the responsibility of maintaining the notes while NoteIndex focuses on how notes are presented or grouped. The CategoryManager class works to provide categories and is separate from the Notes class to promote single responsibility and allow for future scalability and implementing category-specific filters. Each class has a clear focus and task, which makes the design cohesive and easy to maintain. Frontend tasks such as recording audio using MediaRecorder were kept separated from the backend tasks such as storing said recorded audio. The way these tasks are separated are in line with the MVC style design. Also, abstraction was used efficiently in multiple spaces to ensure cleaner and more modular code. Manager classes were used to handle complex logic such as saving and loading and were kept separated from UI code. The strength of this projects are strong use of class responsibilities and encapsulation. Also, the UI features are well designed and clean. The addition of letting users add voice data also strengthened the project, making it even more user friendly. Also, the needs of users were well thought of. For example, the user can abort changes and add extra features such as voice notes even if the first version did not include voice files. However, the project could benefit from further abstraction.

About

This is a web-based note taking application that allows its users to create, view, delete and edit notes. The notes contain a title, text content, image, URL, one or multiple categories and voice recordings. Users can either record their voices directly in the web application or upload voice documents into texts.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published