Herman Thong - Project Portfolio Page
Overview
revisED is a CLI application to help students revise by allowing them to create flashcards, take quizzes, and keep track of their deadlines, tasks and any other important dates. It is written in Java.
Summary of Contributions
-
Code contributed: RepoSense link
-
Features implemented:
- All subject level features and commands
- Credit: The repeated and similar commands was modified from the main level commands of the code by JiaLerk.
- Total of 18 different commands in the taskcommand package and the topiccommand package.
- Integrated task level features into project
- Credit: task level features were modified from the ip of JiaLerk.
- I had to change the syntax for subject-level commands in order to integrate tasks under the subject level, and ensure that features shared across Topics and Tasks (eg. add, delete, find) did not conflict.
- AccessSubjectCommand class
- This was harder than expected because the 18 different subject-level commands required different objects to be passed to them to initialise them, and they threw different exceptions that had to be caught, so a lot of debugging had to be done to ensure that the correct error messages were printed.
- List all function - printing the tree of the overall structure
- There are many corner cases in printing out the tree (eg. no tasks, last subject), so I had to do a lot of trial-and-error to control the flow of logic of the code. Later, I had to SLAP it to make the method less nested and confusing.
- All subject level features and commands
-
Enhancements implemented:
- Enhanced the code to reduce redundancy and improve design.
- Changed the cascading if-else statements into switch-case statements for FlashcardParser and TopicParser classes. (Pull requests: #124)
- Improve handling of command in the case of mistyped inputs (extra spaces, capital letters, etc.) (Pull requests: #124)
- Improved format of printing flashcards under list command
- Added tests for subject-level commands (Pull requests: #59)
- Fix bugs discovered in PE dry run regarding user input and
-
Contributions to the UG: TODO:
- All Subject level features features.
- Restructuring of explanation of all the commands to be consistent.
- Update examples related to list all
-
Contributions to the DG:
- Editted the write-up under Design section under design (along with its class diagram).
- Architecture section under design and architecture diagram.
- Card package section and its class diagrams.
- UML sequence diagram for accessing a topic.
- list all under Implementation and its sequence diagram.
-
Contributions to team-based tasks:
- Fixed general coding standard issues (eg. variable names)
- Restructured and reordered DG design section for more cohesive documentation
- Manually test code before release
-
Review/mentoring contributions:
-
Contributions beyond the project team:
- Posted an issue for T16-4 when their release jar file could not run.