Project: NUSchedule
NuSchedule is a desktop task management application used for keeping track of user's events. The user interacts with it using a CLI. It is written in Java and has around 5 kLoC.
Given below are my contributions to the project.
-
Main Frame
- Events and its subclasses: the basic elements in this product. All commands depend on them.
- EventList class: provides the functions to operate on the list of events.
- Storage: the way to store the data as well as load them from the hard disk.
- UI,Parser, Command, and the main running class: makes the product object oriented.
-
New Feature: Added the ability to add events, and manage different cases accordingly.
-
New Feature: Added the ability to record amount of time spent on study on certain date.
- What it does: allows the user to check what is the amount of time spent on study on the day.
- Justification: this feature provides the way to know the amount of effort the user spent on study, which is useful for NUS students.
- Highlights: the implementation uses several filters of the stream of the list of events, and only the appropriate ones are recorded. It also considers the case when certain event is across more than one day, the study time will be calculated correctly for different dates.
-
New Feature: Added the ability to mark an event as done, as well as reject it if the current time is before the ending time.
-
New Feature: Added the ability to delete an event.
-
New Feature: Added the ability to set the name of the user, as well as indicate the occupation. (i.e. student or professor)
-
New Feature: Added the ability to find the events with given keyword in the description.
-
New Feature: Added the ability to find the events happening on the given date.
-
New Feature: Added the ability to Repeat of required events for several weeks.
- Highlights: Added copy constructor for Event and its subclasses, because Java does not pass reference as a copy, so we need to create a copy to avoid the edit being effective to the original object.
- Credits: The code to compare whether 2 localDateTimes are within the same week. Provided by Sunil Katti here
-
New Feature: Added the ability to exit the application.
-
New Feature: Added the ability to print the list of locations at the selected area in NUS.
-
Code contributed: RepoSense link
-
Project management:
- Managed releases
v1.0
-v2.1
(3 releases) on GitHub
- Managed releases
-
Enhancements to existing features:
-
Documentation:
- User Guide:
- Developer Guide:
- Make the hyperlinks work properly #92
-
Community: