Project: ProductiveNUS

Project Overview

ProductiveNUS is a desktop application targeted at Computing students of National University of Singapore (NUS) to help them manage and schedule their academic tasks efficiently. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

My Contributions to the Code

  • Code contributed: RepoSense link

  • Created the Lesson class #68
    • What: A separate class that stores the user’s lesson information which will be imported using an import feature.
    • Why: Lessons are meant to be viewed only and cannot be modified by the user, unlike the Assignment class.
    • Credits: Code implemented is adapted from existing Person class in AddressBook3.
  • Import Command #73, #80, #241, #276
    • What: Allows the user to import their NUSMods lesson information into ProductiveNUS.
    • Why: This feature improves the product significantly because a user can conveniently refer to their timetable on ProductiveNUS instead of having to go to NUSMods. Other commands such as Schedule also works best if the user can import their weekly timetable.
    • Note: This enhancement retrieves data from the NUSMods API by sending a HTTP GET request. A new model class Lesson is also implemented to support the import command.
    • Credits: Code implemented is adapted from examples on Baldeung and the NUSMods API.
  • Created the Priority class #124
    • What: An assignment field that is optional. Users can set priorities to their assignments.
    • Why: It is likely that users have assignments of different importance and hence, having a priority tagged to the assignment would help them better manage their work.
    • Credits: Code implemented is adapted from existing fields in AddressBook3.
  • Prioritize/Unprioritize Command #124, #167, #276
    • What: Allows the user to set the priority level of their assignments in ProductiveNUS, which is displayed as a coloured tag in the assignment card.
    • Why: This feature improves the user’s experience as it is easier for them to spot assignments that are of greater importance so as to better plan their schedule.
    • Note: This enhancement is compatible with the Find feature, where users are able to list assignments of a specific priority tag.

My Contributions to the Documentation

  • User Guide: #36, #95, #132, #163, #170, #248
    • I added the Import and Prioritize/Unprioritize segments of the User Guide.
    • I also made format changes to ensure that the document is standardised.
  • Developer Guide: #59, #61, #134, #272
    • I added the Import and Prioritize/Unprioritize segments of the Developer Guide.
    • I also made format changes to ensure the document is standardised.

My Contributions to team-based tasks

#180, #254

  • I helped to refactor and rename all “AddressBook” to “ProductiveNUS”.
  • I also helped with formatting issues with the User Guide.

My Review Contributions