Yen Pin Hsuan's Project Portfolio Page
Project: Tutor’s Pet
Tutor’s Pet is a desktop application for managing students and classes, designed for teaching assistants in NUS School of Computing. Tutor’s Pet was adapted from an existing desktop Java application Address Book (Level 3). My team, comprising 5 NUS Computer Science undergraduates, developed the application over the course of 6 weeks.
The following sections document the contributions that I have made to Tutor’s Pet.
Summary of Contributions
Here is a summary of my personal contributions to the team project. All my code contributions can be found here.
Major Enhancements:
- Implement
Lesson
model. #112- What it does: Supports organising lessons into classes.
- Justification: This feature allows us to implement commands for lessons.
- Highlights: This feature required addition of a new component to the model of the application. There were 2 designs considered:
- Store
Lesson
objects directly inModueClass
. - Create
UUID
field forLesson
and store uuid inModuleClass
.
- Store
edit-attendance
command feature. #157- What it does: This feature allows users to edit the attendance of a student.
- Justification: Users do not have to delete the attendance and re-add a new one if they made any errors when inputting attendance.
- Highlights: Implementation of this feature was complicated as retrieving
attendance
in theedit-attendance
command will break the law of demeter. Hence the utility methods for editing attendanceAttendance
are inModuleClassUtil
,LessonUtil
andAttendanceRecordListUtil
. This is also to avoid handling logic inModel
component.
Minor Enhancements:
- Renamed
AddressBook
andPerson
toTutorspet
andStudent
respectively. #55 - Updated student-related commands and parsers. #56
- Updated
list
command to list all students and classes. #93 - Added a
reset
command that allow users to clear all data in Tutor’s Pets #106 - Fixed the bug that start time of lesson can be later than end time. #173
- Designed UI for
Lesson
. #194 - Fixed lesson timing overlap bug. #259
Other Contributions
- Project Management:
- Managed release v1.3.trial on GitHub.
- Record video demonstration for v1.3.
- Documentation:
- User Guide
- Added sections on
help
,exit
,reset
,list
,edit-attendance
commands.
- Added sections on
- Developer Guide
- Added the following use cases:
Add a student (UC01)
,List students (UC02)
,List students within a class (UC09)
andList students and classes (UC14)
. - Added implementation details for
Lesson
model. - Updated documentation and diagram for Architecture and Commons section.
- Added the following use cases:
- User Guide
- Team-Based Tasks & Community: