Sherman Ng's Project Portfolio Page
Project: ProgrammerError
ProgrammerError (PE) is a desktop application which helps CS2100 Lab Teaching Assistants (TAs) manage their students’ lab results in a simple and efficient manner, allowing them to spend less time on administrative processes and more time teaching students. It is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI) developed with Java and JavaFX.
Please find below my contributions to the project. My contributions to the project code base can also be found at the following RepoSense link.
Features
- New Feature: Added the ability to filter the list of students based on different query parameters.
- What it does: Filters the list of students stored in PE by displaying all the students that matches the query parameters. Tutors can specify the filter criteria based on any combination of students’ particulars.
- Justification: So that tutors are able to quickly filter out the students’ of interest out of their large number of students using known parameters (e.g. Class ID).
- Highlights: This feature was challenging as it involved filtering students based on any combination of query parameters provided. This also involved creating a whole new command from scratch which requires comprehensive understanding of all the classes in PE.
- New Feature: Added a command history feature that allows tutors to navigate to previous commands using up/down
keys.
- What it does: Allows tutors to navigate previously executed commands, similar to the Unix CLI.
- Justification: So that fast-typists tutors are able to be more efficient when using PE.
- Highlights: This involved a self-directed learning experience using online materials to properly implement an “onKeyPressed” event listener. Deep thoughts were also required in the consideration of the edge cases to ensure that this feature is free of bug.
Other Contributions
- Project management:
- Created and set up the GitHub team organisation, repo, pages and actions.
- Managed and ensured the prompt delivery of releases v1.3.trial & v1.3.1 (2 releases) on GitHub.
- Labelled and referenced all the figures in the DG (PR #603).
- Solved bug that prevented User Guide and Developer Guide from being linked as one of the header pages in
the team’s
index.md
page (PR #276).
- Enhancements to existing features:
- Enhanced the
edit
feature to accommodate the changing requirements of PE (PRs #121, #387, #403, #488). - Modified generic utility classes for the integration of the new PE requirements (PR #274).
- Increased user feedback by putting in place better exceptions throwing mechanism and more detailed description (PRs #272, #287, #373, #387, #403, #416).
- Increased code quality (PRs #206, #495, #509, #622).
- Various bugfixes (PRs #150, #362, #375, #634).
- Enhanced the
- Documentation:
- User Guide:
- Developer Guide:
- Community: