Ivan's Project Portfolio Page
Project: TutorAid
TutorAid is a desktop application used for helping tech-savvy private tutors, who have busy schedules / many students, to keep track of the details of all their students and lessons. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.
Given below are my contributions to the project.
- Card-like UI elements:
- Added the ability to view lessons in a panel in TutorAid (PR #106)
- Justification: This feature is important for user functionality as having a separate panel for lessons allows them to manage lessons and students simultaneously.
list -a
command to show all fields while viewing a list of students and lessons (PR #87)list
command alone hides fields (PR #70)- Justification: Having a list command that can hide details while listing students and lessons allows users to see more entries on a single screen, while having a list command that can show all details can allow users to look at fields of each of their students / lessons.
- Edit student / lesson commands
- Justification: Being able to edit is a feature that makes it a lot more convenient for users to change fields for students / lessons. Without this feature, they would have to delete the original entry and create a new one. This is inconvenient especially if only a single field has changed.
- Other features and enhancements to existing features:
- Link between students and lessons: Re-implemented the way that the JSON files are read to ensure that Student objects and Lesson objects are always kept in sync, even with edits to students / lessons or their names (PR #243)
- Added ability to link and unlink multiple students with multiple lessons (PR #269) based on the initial attempt done by ErnestCuong (PR #125)
- Add lesson to student / Add student to lesson: Fixed a bug where editing the student or lesson would cause the two entities to go out of sync (PR #143)
- Progress: Improved formatting as it appears on the Student Panel (PR #142)
- Code contributed: RepoSense link.
- Project management:
- Facilitated weekly team meetings
- Managed deadlines and deliverables
- Contributed to the issue tracker and milestones
- Managed some releases on GitHub
- Documentation:
- User Guide:
- Created Introduction and About sections, including documentation of UI elements and command structure
- Added documentation for the features
edit -s
andedit -l
- Re-organised feature reference
- Re-organised command summary
- Developer Guide:
- Worked on target user profile, value proposition, user stories, use cases, non-functional requirements, glossary
- Architecture notes for Model components
- Implementation of card-like UI elements and related UML diagrams
- User Guide:
- Community: