Note Taking App


March 25, 2019

Application built with Java.

Application and source code available on GitHub.

Note Taking App was part of the Object Oriented Programming module at University. The idea was for students to learn about the features of Object Oriented Programming and implement them into a real-world application.

The requirement was to produce a program that allows students to record notes for lectures, and classify them by module. Students should be able to search notes for keywords and develop coursework for their modules, with the ability to add a list of requirements.

This course also required me to attend three hackathons, to add extra functionality in a timed environment. This included producing a search method, finding the module with the most number of notes, finding the date most notes were written, adding a deadline and alert date to each coursework, and finding coursework by specifying the semester or term week its due in.

Furthermore, I added extra features such as the ability to edit/delete notes and coursework and save the progress for each requirement in a coursework.

Using Object Oriented features, I started to decompose the problem by identifying the objects the program required, as well as the attributes and methods for each object. For instance, I needed a Note object which had a date attribute and the note’s content’s attribute, and I needed methods to set and get each attribute’s values.

Through this project, I learnt the four concepts of Object Oriented Programming: Abstraction, Polymorphism, Inheritance and Encapsulation. When used correctly, they can help to decompose a complex problem into smaller, more manageable problems, with focus on objects and code reusability.