Jia Xin's Project Portfolio Page
Project: TAssist
TAssist is a desktop app for Teaching Assistants to manage their students across different modules and keep track of students’ activities/participation in class. It is optimized for use via Command Line Interface (CLI). The user interacts with it using a CLI, and it has a Graphical User Interface (GUI) created with JavaFX. It is written in Java, and has about 11 kLoC.
Given below are my contributions to the project.
- New Feature: Added the model for class groups, lessons and student attendances.
- What it does: Allows the TA to manage the class groups, lessons as well as the students enrolled in the class groups.
- Justification: This feature improves the product significantly because a TA needs to manage the class groups he/she is teaching as well as the weekly lessons and student attendances and the app should provide a convenient way to represent them.
- Highlights: This enhancement required an in-depth analysis of design alternatives. The implementation too was challenging as changes were made to accommodate the model classes and methods needed for each version iteration (e.g. added
LessonandStudentAttendancein v1.3).
- New Feature: Added the storage for class groups and assessments.
- What it does: Allows the class groups, assessments as well as the students’ attempts to be stored.
- Justification: This feature improves the product significantly because data can be stored and retrieved whenever the TA runs the app.
- New Feature: Added parsing for the mark and unmark commands.
- What it does: Allows the TA to execute the mark and unmark commands by parsing the input.
- Justification: This feature improves the product significantly because a TA needs to be able to take student attendances and the app should provide a convenient way to parse and check the TA’s input.
- Highlights: This enhancement required the creation of new methods to accommodate for the parsing of the
s/prefix (refer below).
- New Feature: Added parsing for the
s/prefix.- What it does: Allows the TA to specify the students he/she would like to run the commands on.
- Justification: This feature improves the product significantly because a TA needs to be able to specify which students he/she would like to make changes to and the app should provide a convenient way to parse and check the TA’s input.
- Highlights: This enhancement affects v1.3 commands (e.g.
mark,unmark). It required an in-depth analysis of design alternatives. The implementation too was challenging as various inputs need to be handled with the appropriate error messages.
- New Feature:
- Wrote tests for the
ClassGroup,LessonandStudentAttendancecomponents as well as their relative storage classesJsonAdaptedClassGroup,JsonAdaptedLessonandJsonAdaptedStudentAttendance. - Wrote tests for the
DeleteCommandandDeleteCommandParser.
- Wrote tests for the
-
Code contributed: RepoSense link
- Documentation:
- User Guide:
- Developer Guide:
- Community:
- PRs reviewed (with non-trivial review comments): #61, #96, #98, #106, #113, #124
- Maintaining the issue tracker
- Updating user/developer docs that are not specific to a feature
- Adapted Model component and diagrams to TAssist in the developer guide. #110, #112
- Added instructions for testing the features
add,list,find,delete,enrol,disenrol,mark,unmarkandgrade. #230 - Updated command summary table in the user guide. #112
- Added command parameter table to the user guide. #141