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
Student
is assigned a randomly generatedUUID
to ensure referential integrity ofStudent
data across different models. Time was spent onUUID
integration and fixing broken test cases.
- In Tutor’s Pet, every
- Introduced ModuleClass to Storage. #75
- Introduced the Java classes
JsonAdaptedUuid
andJsonAdaptedModuleClass
into Storage so that we could allocateStudent
s 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 Lesson
andDelete AttendanceRecord
commands. #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
Student
s. #182- Fixed a major bug where a
Student
’s data could still be found inLesson
s andAttendanceRecord
s even after theStudent
had 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
Lesson
venue. Time had to be allocated to fix test cases. Existing test case commandsString
s 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-students
andclear-class
commands. - Added documentation for
add-lesson
anddelete attendance
commands. - 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.