Project: TutorMate
TutorMate helps private tuition teachers manage their students more easily. It allows faster access and storage of students’ contacts and data, providing better time management and productivity. The app will help to manage students for a single tuition teacher only.
Given below are my contributions to the project.
- New Feature: List command to toggle between different lists (Pull request #56)
- What it does: Allows the user to toggle between the different lists (STUDENTS list, SCHEDULE list and TASKS list), corresponding to different states. It provides the foundation Ui for other lists to be added on for different states.
- Justification: Each state has their corresponding pair of lists, but with many lists we needed to group and show the required ones based on the current app state. Hence this feature allows the user to switch between them easily.
- Highlights: This also builds upon another feature which allows for conditional display of student details in the student list.
- New Feature: State system for app model (Pull request #68)
- What it does: Changes the app to work in 3 different states, where the
STUDENTS
state handles students information, SCHEDULE
state handles lesson and scheduling, TASKS
state handles tasks related purposes. - Justification: Our app purpose allowed for student detail management, tutor lesson handling and tasks management. Consequently, each purpose had different UI and command behaviour. Hence, we needed a way to separate each purpose.
- Highlights:
- This feature heavily impacts the workflow for the user, since it implies the app having 3 different states or "modes" with differing purposes.
- Code wise, the state system is a core foundation that allows for functionality to be built upon the current app state.
- Command words can now be overloaded for multiple purpose, where depending on the app state, the same command word can be mapped to different commands (e.g.
add
command word maps to AddPersonCommand
and AddLessonCommand
). - Commands can also be overloaded with differing functionalities based on app state (e.g.
FindCommand
will search for students or lesson when in STUDENT
or SCHEDULE
state respectively).
- New Feature: Student remarks (Pull request #83)
- What it does: Allows tracking of remarks for each student.
- Justification: There are certain small information for each student that tutors want to remember, that does not belong to a specific category, such as remembering a weak area for a student.
- Highlights: Remarks allow for flexibility in storing any type of information in text form, giving rise to many applications depending on the tutor's creativity.
- New Feature: Command history tracking (Pull request #169)
- What it does: Stores a history of the commands typed during the session, to reuse previously typed commands.
- Justification: Repeated commands or similar commands have to be retyped or deliberately copy-pasted, which is tedious and has poor usability. Hence, this feature allows the user to quickly retrieve the previous commands entered to re-execute or make minor changes to the command for another execution.
- Highlights: Increased efficiency in executing similar (long) commands, by simply pressing the arrow keys to retrieve previous commands and making minor changes, rather than copy-pasting or re-typing the entire command.
- Contributions to User Guide:
- Create template user guide (Pull request #273)
- List feature section update (Pull request #183)
- Find feature section update (Pull request #294)
- Command history feature section update (Pull request #294)
- Change layout of UG website on Markbind to remove left panel (Pull request #273)
- Contributions to Developer Guide:
- App state feature (Pull request #100)
- Add AddSequenceDiagram for state feature (Pull request #320)
- State and remark in ModelClassDiagram (Pull request #100)
- Contributions to team-based tasks:
- tP Team Organization Setup
- tP Team Repo Setup
- Sketched alternative UI design to use for app
- Update README file in Repo (Pull request #277)
- PED Bug Fixes (Pull request #227)
- Review/mentoring contributions:
- 45 PRs reviewed (with non-trivial review comments)
- Reported bugs and suggestions for other teams