Jaya Rengam's Project Portfolio Page
Project: TAskmaster
TAskmaster is a desktop app for managing students, optimised for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you are a CS Teaching Assistant who can type fast, TAskmaster can help you track your students’ attendance and class participation faster than traditional GUI apps.
Given below are my contributions to the project.
- New Feature: Storage for
Attendance
- This feature was replaced by the feature below, also developed by me.
- New Feature: Storage for
SessionList
- What it does: saves the
SessionList
of the Taskmaster to a file every time it is modified; theSessionList
is then loaded from the file on startup. - Justification: This feature is essential for practical use of the application as it is expected that a user will not have it open all the time, but would still want to save their records when closing and reopening the app.
- Highlights: This enhancement required an good understanding of existing
Storage
code to convertSessionList
classes to their Json representations. Significant modification to existing test code was also done (especially inTypicalStudents.java
) - Credits: The design of this feature were adapted from existing Storage code.
- Additional details of the implementation are here
- What it does: saves the
- New Feature:
LowestScoreCommand
- What it does: in a
Session
, displays all the students with the lowest class participation score - Justification: This feature is useful for TAs, especially if they have classes with many students and cannot afford to scroll through their list to call a student who does not have class participation.
- Highlights: This enhancement required a substantial refactoring of Model code as the
ObservableList<StudentRecord
passed to the UI was previously not modifiable (to set a predicate). The change of the relevant field in Model triggered a few errors that had to be fixed in a methodical manner. Testing of code was required to uncover the problem, which was that the list of student records was not updated in time before being called by the UI. This occurred when the relevant listener was activated upon the changing/adding of a Session to the Taskmaster. Fixing this issue required significant modifications to how the representation of theStudentRecordList
was handled by theModel
class.
- What it does: in a
-
Bug Fix: Block duplicate
Session
names -
Code contributed: RepoSense link
- Enhancements to existing features:
- Documentation:
- User Guide:
- Added documentation for above implemented features.
- Developer Guide:
- Added implementation details for Storage
- Updated Use Cases for new features
- Added non-functional requirements
- Maintained project document
- User Guide:
- Community:
- PRs reviewed (with non-trivial review comments): #27
- Other PRs reviewed