Class Manager 2023
Class Manager 2023 aims to provide fast access to CS2103/T TAs in maintaining and managing student information across multiple classes. It also helps TAs visualise students’ grades, attendance and class participation. Class Manager 2023 is written in Java, and has about 26 kLoC.
Given below are my contributions to the project.
Code contributed: RepoSense link
New feature: grade
and class-part
command (PR: #86)
- What it does: Allows users to record the assignment grades and class participation of students.
- Justification: This feature allows users to record the assignment grades and class participation of students. This is especially useful for TAs as they can record and visualize the assignment grades and class participation of students in a single application.
- Highlights: Implementing this feature requires sufficient understanding of the
Model
component of the application. In order for the grade
and class-part
command to be executed, I had to refactor the Student
class to allow for the assignment grades and class participation of students to be recorded.
New feature: theme
command (PR: #107)
- What it does: Allows users to customize the Class Manager by toggling light and dark theme.
- Justification: This feature allows users to toggle light and dark theme. This is useful for TAs who prefer to use a specific theme for their application.
- Highlights: Implementing this feature requires sufficient understanding of the
Model
and UI
components of the application. In order for the theme
to be applied to the GUI, I had to refactor the MainWindow
class to allow for the different stylesheets to be loaded. In addition, I had to refactor the UserPrefs
class to allow for the theme to be saved and loaded.
Enhancement to existing feature:
lookup
command (PR: #54)
- What it does: Allows users to search and filter students based on the given criteria.
- Justification: This feature allows users to effectively find students based on the given criteria. This is especially useful for TAs who teach multiple tutorial classes within a specific module as they can search for students based on their tutorial class number and other information.
- Highlights: Implementing this feature requires sufficient understanding of the
Model
component of the application. In order for the lookup
command to be executed, I had to refactor the Predicate
for the Student
class.
Storage
components to fit the new features (PR: #86)
- What it does: Allows the new "class details" features to be saved and loaded.
- Justification: This enhancement allows the new "class details" features to be saved and loaded. This is essential for TAs who want to save and continue editing their data from where they left off.
- Highlights: Implementing this feature requires sufficient understanding of the
Model
and Storage
components of the application. I had to add new classes to the Storage
component to allow for the "class details" features to be saved and loaded.
Documentation:
- User Guide:
- Added documentation for the following features:
lookup
, grade
, class-part
, theme
. - Added hyperlinks to the command summary section.
- Edit the features section and class number description in the User Guide.
- Handled image formatting of the User Guide.
- Added some FAQ.
- Developer Guide:
- Added implementation details of the
lookup
and theme
command. - Edited the implementation details in
Class Details
. - Added some use cases.
- Added some manual testing.
- Added some NFRs.
- Added some planned enhancements.
- Edited AB-3 UML diagrams to fit with our implementation.
Team-based tasks:
- Set up the GitHub website.
- Monitored releases and milestones.
- Frequently tested the application and fixed bugs.
- Helped to review and merge PRs.