Deng Huaiyu's Project Portfolio Page
Project: TutAssistor
TutAssistor is a desktop application for private tutors to manage tuition class timeslots. While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). The user interacts with it using a CLI, and it has a GUI created with JavaFX. It has about 20 kLoC.
Given below are my contributions to the project.
- New Feature: Designed and implemented the timetable feature. #104
- What it does: In GUI, allows the user to view all scheduled lessons in one week, with the name and time range of each lesson specified in the timetable.
- Justification: This feature helps users to better visualize the lessons scheduled and quickly check lessons arranged at a specific time.
- Highlights: The size of timetable is designed to vary with the time of lessons arranged. The GUI implementation is thus challenging as the size and position of cells inserted and font size for each cell need to be computed with care.
- New Feature: Added the ability to add students to existing tuition class. #35, #51, #75
- What it does: Allows the user to add existing students to existing tuition class use one or more student names or student indices.
- Justification: Allows users to flexibly move students into tuition classes
- Highlights: Many situations need to be considered to show correct message to user, namely non-existing students, students already enrolled in class, valid students not enrolled due to class size limit, and valid students enrolled. #67
- New Feature: Added the ability to add students when adding a new tuition class. #35
- What it does: Allows the user to add students when creating a new tuition class.
- Justification: Adding students to a new tuition class directly is more convenient.
- New Feature: Added the ability to sort the tuition list. #80
- What it does: Allows the user sort the tuition list by time and alphabetically order.
- Justification: Users can now view tuition classes in their preferred order.
- Enhancement: Redesigned
Student
andTuitionClass
data structure. #35, #51- What it does: Stored tuition classes that each student attend using tuition class ID, and store students in each class using student names.
- Justification: Previously students and tuition classes were saved as objects under each other. This takes extra space for storage and increases running time.
- Highlights: Major modification is done for
addclass
andaddtoclass
features as well asJsonAdaptedTuition
andJsonAdaptedStudent
files for storage.
- Other Enhancements:
- Testing: Wrote unit tests for
AddToClassCommand
,StudentList
,Timetable
,SortCommand
,SortCommandParser
,TimetableCommand
,TimetableParser
, andUniqueTuitionList
classes. Increases code coverage for TutAssistor by 11.94% (#142, #145, #202) -
Code contributed: RepoSense link.
- Documentation:
- User Guide:
- Developer Guide:
- Contributions to the team-based tasks
- Set up the GitHub team org and GitHub team repo.
- Added codecov and updated CI badge to TutAssistor. #208
- Proposed and enhanced data structure: modified the relationship between students and tuition classes.
- Modified documentation to match the coding standard. #112
- Updated user guide Table of Content and added annotation for screenshot. #206
- Updated sample data of TutAssistor. #55, #57
- Review/mentoring contributions
- Community