Project: Trackr

Project Overview

Trackr is an application for teaching assistants (TAs) who prefer to use a desktop application for managing their student records. It is uses a Command Line Interface (CLI), while still retaining the benefits of a Graphical User Interface (GUI). Our application was build using Java with IntelliJ as our IDE of choice, it currently has over 15kLoC.

Summary of Contributions

  • Code contributed: tP Code Dashboard

  • Enhancements implemented:
    • Storage system
      • Implemented the internal system of converting objects into the serializable JSON versions that the Jackson class can use.
      • Designed the structure of storage by designing how different objects store other objects and how these objects are to be accessed by other classes.
      • Wrote testcases to ensure even when JSON file is tinkered with, Trackr can throw the proper exceptions and continue to function without crashing.
    • Class implementation
      • Implementation for fields in the Module, TutorialGroup, Student classes into their own classes i.e. ModuleId, TutorialGroupId, DayOfWeek, TimeOfDay.
      • Helped with implementation of Attendance class that belonged to the Student class.
      • Ensured all new classes would be properly incorporated into other systems that use them e.g. Parsers and commands.
    • Bug catching / fixing
      • Helped catch bugs from my own implementations and implementations of other team members.
      • Helped fix bugs from my own implementations and implementations of other team members.
    • Testing
    • Others
      • Added checks in ParserUtil to fix bugs regarding exception handling and to ensure command parsing provides the appropriate error messages when invalid parameters are provided.
      • All of my pull requests can be viewed here.
  • Contributions to documentation:
    • Wrote introductory sections of UG and updated table of contents with the correct links to the correct sections in the UG.
    • Wrote section on attendance features, namely commands that involve attendance, specifically Section 4.6 - Attendance Features.
  • Contributions to the DG:
    • Wrote / edited design section for DG and updated / created diagrams for them, specifically Section 4 - Design.
    • Wrote / edited section on saving and loading mechanism for Trackr and updated the diagram for it, specifically Section 5.9 - Data saving and loading.
  • Contributions to team-based-tasks:
  • Review/mentoring contributions:
    • Reviewed PRs and PRs I commented on.
    • Advice given for code of other team members through external means of communication i.e. Telegram chat and Google Meet meetings
      • Reported bugs and pointed out inconsistencies in other team member’s code
      • Helped with code tracing if team member has difficulty finding the cause of a bug
  • Contributions beyond the project team: