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:
-
LogicManager
callsparseCommand()
ofSuperTaClientParser
, with the user input as the argument. -
SuperTaClientParser
invokesparse()
ofDeleteAssignmentCommandParser
. -
If arguments are valid,
parse
extractsfromTutorialGroup
andassToDelete
strings to instantiate aDeleteAssignmentCommand
. -
The
DeleteAssignmentCommand
is returned toLogicManager
, which callsexecute()
on it. -
DeleteAssignment
callsModel#deleteAssignment()
usingfromTutorialGroup
andassToDelete
.
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
TutorialGroup
andAssignment
objects to hold the String values. -
Cons: Requires that the
Model
supports finding a tutorial group and assignment withinModel#deleteAssignment()
.
-
-
Alternative 2: Wrap the tutorial group ID and assignment title in
TutorialGroup
andAssignment
objects and store them as fields inDeleteAssignmentCommand
.-
Pros: Easy to compare between actual
TutorialGroup
andAssignment
usingequals()
. -
Cons: Dependent on the overridden
equals()
method in theTutorialGroup
andAssignment
classes 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.
-