Ethan Rozario's Project Portfolio Page
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
- Provided testcase utilities for the use of all team members such as sample databases for testing purposes.
- 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.
- Storage system
- 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:
- Helped release trial version of v1.3
- Done most of refactoring from the name Addressbook to Trackr, performed renames of UI elements and elements in code.
- Safely deleted classes no longer required for Trackr to use that used to belong to AB3, ensured the removal would not cause bugs.
- Reorganise classes into different packages for ease of navigation and updating the team whenever doing so.
- Ensured formatting consistency across the UG and DG, setting conventions of how to present information in our UG and DG, and fixing grammatical errors / typos.
- 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: