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 Lesson and StudentAttendance in 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, Lesson and StudentAttendance components as well as their relative storage classes JsonAdaptedClassGroup, JsonAdaptedLesson and JsonAdaptedStudentAttendance.
    • Wrote tests for the DeleteCommand and DeleteCommandParser.
  • Code contributed: RepoSense link

  • Documentation:
    • User Guide:
      • Added documentation for the features delete, enrol, disenrol, filter, mark, unmark, grade and find. #13, #112, #137
    • Developer Guide:
      • Added use cases for the components class group and assessment. #31, #142
      • Added use cases and user stories for the features enrol, disenrol, filter, mark, unmark, grade and find. #142
      • Added implementation details of the delete feature. #110, #112
  • 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, unmark and grade. #230
      • Updated command summary table in the user guide. #112
      • Added command parameter table to the user guide. #141