Overview
SuperTA is a desktop app for Teaching Assistants and Professors of NUS School of Computing to manage their tutorials and students. It is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). It is written in Java, and has about 10 kLoC.
Summary of contributions
-
Major enhancement: added the ability to delete an existing Assignment in an existing tutorial group.
-
What it does: allows the user to delete the specified assignment from the specified tutorial group.
-
Justification: This feature improves the product significantly because a user can make mistakes when adding assignments, such as creating the assignment in the wrong tutorial group.
-
Highlights: This enhancement affects multiple components, such as Logic and Model, and requires in-depth understanding of these components.
-
-
Minor enhancement: added a delete-tutorial-group command which allows the user to delete an existing tutorial group. (Pull request #84)
-
Code contributed: RepoSense collated code
-
Other contributions:
Contributions to the User Guide
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Deleting an Assignment: delete-assignment
Deletes an existing assignment for a specific tutorial group.
Format: delete-assignment tg/TUTORIAL-GROUP-ID as/ASSIGNMENT-TITLE
Examples:
-
delete-assignment tg/04a as/lab1
Deletes an assignment named 'lab1' from the tutorial group with an ID of '04a'.
Deleting a Tutorial Group: delete-tutorial-group
Deletes an existing tutorial group.
Format: delete-tutorial-group id/TUTORIAL-GROUP-ID
Examples:
-
delete-tutorial-group id/04a
Deletes a tutorial group with the ID04a.
Contributions to the Developer Guide
Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project. |
Delete Assignment feature
Current Implementation
The delete-assignment command is facilitated by the DeleteAssignmentCommand class.
It extends the abstract class Command and is supported by DeleteAssignmentCommandParser,
and changes made to the Model are done through Model#deleteAssignment().
The delete-assignment command is executed in the following way:
-
LogicManagercallsparseCommand()ofSuperTaClientParser, with the user input as the argument. -
SuperTaClientParserinvokesparse()ofDeleteAssignmentCommandParser. -
If arguments are valid,
parseextractsfromTutorialGroupandassToDeletestrings to instantiate aDeleteAssignmentCommand. -
The
DeleteAssignmentCommandis returned toLogicManager, which callsexecute()on it. -
DeleteAssignmentcallsModel#deleteAssignment()usingfromTutorialGroupandassToDelete.
The following is a sequence diagram of the delete-assignment command:
Design Considerations
Aspect: Implementation of DeleteAssignmentCommand
-
Alternative 1(current choice): Store the tutorial group ID and assignment title as String fields in
DeleteAssignmentCommand.-
Pros: Easy to implement. Does not require instantiating new
TutorialGroupandAssignmentobjects to hold the String values. -
Cons: Requires that the
Modelsupports finding a tutorial group and assignment withinModel#deleteAssignment().
-
-
Alternative 2: Wrap the tutorial group ID and assignment title in
TutorialGroupandAssignmentobjects and store them as fields inDeleteAssignmentCommand.-
Pros: Easy to compare between actual
TutorialGroupandAssignmentusingequals(). -
Cons: Dependent on the overridden
equals()method in theTutorialGroupandAssignmentclasses to work as intended.
-
Use Cases:
UC04 - Grade Assignment
MSS:
-
User views a tutorial group.
-
System displays the tutorial group.
-
User creates assignment in tutorial group.
-
System creates assignment.
-
User enters grade of student to be graded for an assignment.
-
System grades the assignment for the student.
Use case ends.
Extensions:
-
1a. User enters invalid tutorial group ID.
-
1a1. System displays an error message.
Use case resumes at step 1.
-
-
3a. User enters invalid details for new assignment.
-
3a1. System displays an error message.
Use case resumes at step 3.
-
-
5a. User enters invalid grade/student/assignment/tutorial group.
-
5a1. System displays an error message.
Use case resumes at step 5.
-
UC05 - Mark Attendance
MSS:
-
User creates attendance session in tutorial group.
-
System creates attendance session.
-
User enters ID for student to mark attendance for the session.
-
System marks student’s attendance for the session.
Use case ends.
Extensions:
-
1a. User enters invalid details for new attendance session.
-
1a1. System displays an error message.
Use case resumes at step 1.
-
-
3a. User enters invalid student/session.
-
3a1. System displays an error message.
Use case resumes at step 3.
-
UC06 - Add feedback for student
MSS:
-
User enters feedback for student.
-
System creates feedback for student.
Use case ends.
Extensions:
-
1a. User enters invalid student/empty feedback.
-
1a1. System displays an error message.
Use case resumes at step 1.
-