Jun Long's Project Portfolio Page
Overview - Project: Tutor’s Pet
Tutor’s Pet is a student management application for teaching assistants in NUS Computing. It is a one stop solution to keep track of your classes, students, and their progress.
Tutor’s Pet was developed in the module CS2103T Software Engineering in AY2020/2021 Semester 1 as part of the coursework requirements for all NUS Computer Science undergraduates. My team comprised of 5 NUS Computer Science students. We developed Tutor’s Pet from an existing Java application called Address Book (Level 3) over a period of six weeks.
You can find out more about Tutor’s Pet functionalities here. Given below are my contributions to Tutor’s Pet.
Code Contributions
You can find samples of code I have written here.
Enhancements Implemented
- Major Enhancements
- Introduced Student Universally Unique Identifier (UUID) into Student model.
#58
- In Tutor’s Pet, every
Studentis assigned a randomly generatedUUIDto ensure referential integrity ofStudentdata across different models. Time was spent onUUIDintegration and fixing broken test cases.
- In Tutor’s Pet, every
- Introduced ModuleClass to Storage. #75
- Introduced the Java classes
JsonAdaptedUuidandJsonAdaptedModuleClassinto Storage so that we could allocateStudents to the respective tutorial classes that they were enrolled in. Time was spent integrating the two Java classes into Storage and writing test cases for these 2 classes.
- Introduced the Java classes
- Introduced
Add LessonandDelete AttendanceRecordcommands. #129 #152- These commands were required so that we could add lessons to tutorial classes and delete attendance records of students. It involved the creation of many new Java classes, and also a lot of test cases had to be written to thoroughly test these two commands.
- Cascade Deletion of
Students. #182- Fixed a major bug where a
Student’s data could still be found inLessons andAttendanceRecords even after theStudenthad been deleted from the application. There was a need to refactor a large part of the deletion code.
- Fixed a major bug where a
- Introduced Student Universally Unique Identifier (UUID) into Student model.
#58
- Minor Enhancements
- Change Token Delimiter.
#167
- Fixed a bug by changing token delimiter so that the parsing of command was not rendered faulty when a URL
was added to
Lessonvenue. Time had to be allocated to fix test cases. Existing test case commandsStrings had to be abstracted into variables to prevent test cases from breaking in the event that the delimiter was changed again.
- Fixed a bug by changing token delimiter so that the parsing of command was not rendered faulty when a URL
was added to
- Change Token Delimiter.
#167
User Guide Contributions
- Refined documentation for
list-studentsandclear-classcommands. - Added documentation for
add-lessonanddelete attendancecommands. - Consolidated and organised all commands in lexicographical ordering.
Developer Guide Contributions
- Refined storage class diagram in Section 2.5 - Storage Component.
- Documented Section 3.1 - Student Model and Student Universally Unique Identifier (UUID) and Section 3.2 - ModuleClass Model. These sections detail how the team implemented Student and ModuleClass models with the use of Java UUIDs.
- Added use cases
find,clear,lesson,attendance-related commands - UC04, UC06, UC10, UC12, UC17 to UC23.
Contributions to Team-Based Tasks
- PRs reviewed (with non-trivial review comments): #53 #57 #63 #93 #118.
- A list of all PRs I have reviewed can be found here.