This is a portfolio that documents my contributions towards a Calendar and Scheduling application called Horo. Horo helps the user maintain a to-do list and to schedule their activities, and is able to post reminders to their desktop.
Here is a screenshot of our application in the default Calendar view.
Horo was made for the CS2103T Software Engineering module, offered by the National University of Singapore’s School of Computing. Over the course of 6 weeks, students were grouped into teams tasked with either enhancing or morphing a basic Command Line Interface (CLI) application. I contributed to the project by writing both functional and test code, as well as documenting these contributions in the product’s User and Developer guides.
My role in this project was to design and implement the Notification system of the application. Subsequent sections will go into greater detail with regards to my contributions to both the code and documentation.
Note the following symbols and formatting used throughout this document:
|
Text highlighted in grey in the User Guide indicates that a term is a command that can be executed by the program if input through the command line. |
|
Text highlighted in grey in the Developer Guide indicates that a term is a class or an object used in the source code of the application. |
This section lists the code and documentation I contributed to the project.
What it does |
The Notification System runs in parallel to the main thread of the app. Every minute, it checks whether the user should be reminded of any Event or Task, and posts a new notification if necessary. |
Justification |
The Notification System is a natural extension of an application meant for tracking deadlines and schedules. It serves to remind a forgetful or busy user of their commitments. |
Highlights |
• An initial design for the notification system involved running it not as a parallel thread, but as a separate background application. This would allow notifications to be posted even if the main app were closed. However, this design was eventually reworked. Going forward with the original design would necessitate the development of a second application that the user would have to install in addition to Horo. This would have been at odds with module requirements and learning objectives.
|
The following section includes excerpts of my contribution to the Horo User Guide, explaining the Notification System and the notif_on
and notif_off
commands.
The following section includes excerpts of my contributions to the Horo Developer Guide.
This sub-section includes my explanations of the class architecture and behaviour behind the Notification System.
This sub-section includes instructions I have provided for manual testing of the notification system.