Sun Ruoxin's Project Portfolio Page
Project: Teacher’s Address Book (TAB)
Teacher’s Address Book (TAB) is a desktop app made for teachers, teaching assistants(TA) and professors for managing contacts of each other, as well as their students, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, TAB can get your contact management tasks done faster than traditional GUI apps.
Given below are my contributions to the project.
- New Feature: Implemented the
TeachingAssistantclass- What it does: encapsulates the relevant details of a teaching assistant (i.e. their availability).
- Justification: the product can be used for managing the contact information of persons in three positions, with teaching assistants being one of them.
- Highlights: the
TeachingAssistantclass extends the abstractPositionclass. Being the first subclass ofPositionto be implemented, the design of theTeachingAssistantclass provided a guideline for the implementation of the other two subclasses (i.e.Studentclass andProfessorclass).
- New Feature: Added the
AvailabilityCommandto edit the availability of a teaching assistant in the address book.- What it does: allows the user to edit the availability of a teaching assistant in the address book.
- Justification: when a teaching assistant needs to find a relief teacher when they are unavailable for a class, the professor or the teaching assistant themselves can check the availability of other teaching assistants and know who they can contact. The availability command allows the user to update the availability of a teaching assistant to their current status.
- Highlights: the implementation of the command execution took inspiration from the existing commands’ execution,
after an in-depth analysis of the code base and design alternatives. Being the first new command related to the
subclasses of
Positionto be implemented, the design of theAvailabilityCommandandAvailabilityCommandParserprovided a guidance for the implementation of other new commands related to the other two subclasses (i.e.AttendanceCommand,GradeCommandandRolesCommand).
- New Feature: Modified the
GradeCommandto accommodate product design changes.- What it does: with
Assignmentclass added in releasev1.3, the modifiedGradeCommandadds grade to an assignment of a student in the address book. The overall grade of the student, which is displayed on the detail page of the student, is automatically calculated and stored in the address book when the grade of an assignment is updated. - Justification: the modified grade command improves the usability of the product, as in a school’s context the grades are associated with assignments instead of directly with a student on their own.
- Highlights: the implementation was challenging as it required changes to the existing
GradeCommandand other related methods in theStudentclass.
- What it does: with
-
Code contributed: RepoSense link
- Enhancements to existing features:
- Wrote additional tests for existing features to increase coverage by +3.47%: #147
- Documentation:
- User Guide:
- Added documentation for features
help,show,attendance,assignments,grade,avail,roles,filter,new,swap, andrename: #49, #96 - Did cosmetic tweaks to existing documentation of features
add,list,edit,delete,clear, andexit: #49, - Developer Guide:
- Added implementation details of the grade feature: #75
- Added documentation for features
- User Guide:
- Community:
- Others:
- Created UI prototype for the product