Channe Chwa's Project Portfolio Page
Project: TAddressBook
TAddress Book is a desktop app for CS2030S Teaching Assistants (TAs) to manage students and labs, in particular the grading process of lab assignments. It is based on AddressBook Level 3.
Given below are my contributions to the project. The code contributed can be found at this Reposense link.
Features
New features
- Added
LabMarkclass (#91)- Description: Each
Labis associated with aLabMarkwhich isUnknownwhenLabStatusisUNSUBMITTED/SUBMITTEDand an integer from 0 to 100 whenLabStatusisGRADED - Motivation: Allows TA to keep track of marks given to individual labs when grading labs of students.
- Highlights: Involved multiple defensive checks comparing
LabMarkandLabStatusin order to ensure that invalid labs (e.g.GRADEDlabs withUnknownmarks) did not exist
- Description: Each
- Implemented
SubmitLabCommand,GradeLabCommand,EditLabCommand(#91)- Description:
SubmitLabCommandallows for updating ofLabStatusfromUNSUBMITTEDtoSUBMITTEDGradeLabCommandallows for updating ofLabStatusfromUNSUBMITTEDorSUBMITTEDtoGRADEDand updatesLabMarkfromUnknownto a given integer from 0 to 100EditLabCommandallows for editing ofLabStatusand/orLabMark(provided that the resultant lab is not invalid, e.g.LabMarkis notUnknownyetLabStatusis notGRADED)
- Motivation:
- Allows TA to keep track of students’ progress in labs as well as his/her own grading progress.
- Allows TA to modify previous data which may have been incorrectly entered.
- Highlights:
SubmitLabCommandandGradeLabCommandare subclasses ofEditLabCommandwith an identicalCommand#executemethod, which calls other methods that perform validity checks on the labs to be edited and return class-specific error messages. Differing behavior is implemented using the OOP principle of polymorphism by overriding of superclass methods.- Originally was
EditLabStatusCommand(#71), but refactored to three different commands after addition ofLabMark
- Description:
Enhancements to existing features
- Refactored
Personfrom AddressBook Level 3 toStudent - Fix bugs from PE-D: #122
Other contributions
Documentation
- User Guide (UG):
- Developer Guide (DG):
- Ensured that PDF versions of UG and DG looked and worked as expected
Project management
- Managed issue tracker by converting user stories and other features to issues and assigning them to relevant team members
- Helped to manage milestones by adding deadlines and labeling issues