Project: Plan&Score
Plan&Score is a Java command-line application that allows Primary 6 students to plan and track their classes, CCAs and test dates. This enables the students to remember their schedule, so they can plan well in advance for their tests and score better.
Contributions by Andre Wong
Given below are my contributions to the project.
- Features:
- List events #18
- What it does: allows the user to list out all their classes, ccas, tests and tuitions.
- Justification: Allow users to view all their schedule at a glance. The numbering that appears here also corresponds to which events to delete later.
- Find events #178
- What it does: allows the user to search for all the events by keywords.
- Justification: Allows user to look for events in which they cannot remember the exact details such as start date.
- Add quiz #123
- What it does: allows the user to add a quiz question to quiz manager
- Justification: Users can create their own question freely to test themselves afterwards. This helps to improve learning.
- Find contacts #240
- What it does: allows the user to find contacts.
- Justification: Users can search by email, phone number , name or subject if they cannot remember them all.
- Contacts storage #347
- What it does: allows the application to store the contacts in a text file.
- Justification: The data will now be persistent even after the application closes.
- List events #18
- Unused Feature:
- Quiz Notification #217
- What it does: shows notification to user if quiz has not been attempted since two days ago.
- Justification: Reminds users to attempt quiz if they forgot to do their quiz.
- Quiz Notification #217
-
Code contributed: RepoSense link
- Enhancements:
- Refactor code in controller package to have a command and model parser to extract out commands and models so to adhere to single responsibility principle
- Create a command factory that generates the correct command class to execute on
- All commands inherit from abstract class command have method execute()
- EventManager class to add another layer of abstraction
- Storage class inherit from abstract StorageManager to merge duplicated methods #125
- Logger class follows a singleton pattern #146
- Add encapsulation to models by adding an interface to all the modelManagers
- Command sanitized to ensure cases where there are extra or swapped parameters, command in uppercase and command with extra whitespaces are handled
- Factory reset to ensure the program can still loop after factory reset.
- Project management:
- Community:
- Contribution to user guide
- Wrote documentation for
Finding events
,Finding contacts
,Listing events
,Adding quiz
- Added images initially for initialization, help, add and delete class
- Added images under section
Finding events
and enhanced table forcommand summary
- Wrote documentation for
- Contribution to developer guide
- Add colors and removed footboxes to UML diagrams
- Add UML diagrams for figure 1, 3, 4, 5, 17, 18
- Wrote documentation for
Architecture
,Controller component
andModel component
in the Design section - Wrote documentation for
List contact/quiz
,List event (date /today)
andFind event <keyword(s)>
feature - Wrote documentation for manual testing for sections on
Adding of CCAs
,Listing of events
andFinding of contacts
and for Non-Functional Requirements