Project: TrAcker

TrAcker - TrAcker is a desktop event management application for NUS CS2040 Teaching Assitants (TA). The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.

Given below are my contributions to the project.

  • New Feature: Added the ability to Create, Read, Update and Delete Events that do not clash.
    • What it does:
      • Allows the CS2040 TA to create tutorial events (Tutorial, AddTutorialCommand, AddTutorialParser), lab events (Lab, AddLabCommand, AddLabParser), and consultation events (Consultation, AddConsultationCommand, AddConsultationParser).
      • Allows the CS2040 TA to delete tutorial events, lab events, and consultation events.
      • Allows the CS2040 TA to edit tutorial events, lab events, and consultation events.
    • Justification: This feature allows the CS2040 TA to schedule events for student attendance taking, which is the main purpose of TrAcker.
    • Highlights: This enhancement allows the TA to add students to an event as well. So, it was difficult to ensure that the dependencies between the two features worked seamlessly.
  • New Feature: Changed the basic list view GUI to a tableview for the student / person details.
    • What it does: Allows the CS2040 TA to better see the required details of the student without having to look through the entire list.
    • Justification: This feature allows the CS2040 TA to easily check for certain particulars, such as nus email, when the TA wants to relay information via nus email.
    • Highlights: This enhancement affects the display of performance indicator and sort functionality since the tableview columns are used for both the features as well.
  • New Feature: Implemented the display of student profiles (Photo) that can be seen in the tableview, as well as in the event cards when students are added to the events.
    • What it does: Allows the TA to recognise students faces during tutorials, labs or consultation. This way, the TA might remember the student’s name easily.
    • Justification: This feature is done to simulate the list of student photos TA or teachers often take with them to recognise student’s faces with their names.
    • Highlights: This enhancement makes addStudent to events and deleteStudent from events dependent on it.
  • New Feature: Implemented Tabs for separate display of students and events and new gui for events in EventListPanel.
    • What it does: Allows the CS2040 TA better visualise what to see without too much clutter.
    • Justification: This feature allows the TA to easily view details of students, or details of events in different pages without having to see everything in a single page. This way, there will be much less clutter in the screen.
    • Highlights: This enhancement affects the TA’s ability to navigate between tabs using commands.
  • New Feature: Implemented the feature that does not allow the clash between event dates.
    • What it does:
      • Informs the TA that an event cannot be created if the TA has already created an event during that same period.
      • Tutorials are fixed to be 1 hour long, Labs are fixed to be 2 hours long, and Consultation is fixed to be 1 hour long to adhere to CS2040 timetable.
    • Justification: This feature allows the TA to not mistakenly schedule a conflicting event.
    • Highlights: This enhancement further caters TrAcker towards its feature design.
  • Code contributed: RepoSense link.

  • Project management:
    • Managed releases v1.3 Trial, v1.3, v1.3.1, v1.4 (all 4 releases) on GitHub.
  • Enhancements to existing features:
    • Changed the GUI from list view to table view (Pull requests #59, #61, #67, #70).
    • Ensured the color and display of the tableview suits the theme (Pull requests #67.
    • Improved gui of search bar, and TrAcker logo.
    • Improved gui with tabs navigation.
    • Improved gui with icons in events tab.
    • Improved validate checkers for email, phone (telegram), and name.
  • Documentation:
    • User Guide:
      • Added documentation for the features touch, vim, mkdir, editEvent, rm, delete.
      • Ensured documentation has enough visuals.
      • Ensured documentation has a command summary.
      • Added table of contents to documentation.
      • Ensured examples are correct.
      • Ensured formatting of different command sections are consistent.
      • Added icons such as warning, information, and bulb to the documentation to improve readability.
      • Did the skeleton for all parts and added table of content.
      • Added visualisations for commands.
    • Developer Guide:
      • Added implementation details of the touch,vim, mkdir, editEvent, rm, delete features.
      • Formatted activity diagrams for all parts.
      • Formatted User Stories for all parts.
      • Formatted Use Cases for all parts.
      • Ensured all diagrams are correct.
      • Added Planned Enhancements for Photo and addressbook.json data.
  • Community:
    • PRs reviewed (with non-trivial review comments): #36, #51, #66, #69.
    • Authored 113 Pull Requests with mostly non-trivial changes.
    • Authored 41 Issues to keep track of changes with the team.
    • Contributed to forum discussions (examples: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10).
  • Tools:
    • JavaFX TableView.
    • JavaFX ImageView.
    • JavaFX ListView.