Gabriel Waikin Loh Matienzo's Project Portfolio Page
Project: ClassMATE
ClassMATE is a desktop application designed for instructors of the CS2101 Module in NUS to easily store class and student details. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
- Enhancements implemented:
- New feature: Added the ability to find classes:
- PR #130, #246
- Allows the user to find a specific tutorial class among all the tutorial classes, so they can use other features of ClassMATE with the desired tutorial class.
- This implementation was a bit tough as it was my first feature implementation, which involved configuring several edits to the existing code, including the creation of
FindClassCommandandFindClassCommandParser, which define the find class command. I also modified several files to integrate theFindClassCommandinto ClassMATE, includingClassmateParser. - I also added test cases to catch bugs in the command.
- New feature: Added the ability to view students in a group:
- PR #151, #246
- Allows the user to only see students who are in a specific tutorial group. The student list is filtered to show only students who are in the desired tutorial group, for easy access to perform other features of ClassMATE with students in the tutorial group.
- This implementation was a bit tough as it required an understanding of the
TutorialGroupfeature (contributed by Yirui and Yi Yang) and required the creation of morePredicateclasses to filter students in the student list, includingGroupMemberPredicateandTutorialGroupContainsKeywordPredicate. It also required an understanding of the syntax in commands in conjunction with the filtering of students. - I also added test cases to catch bugs in the command.
- New feature: Added the ability to find classes:
- Documentation:
- Edited various documents to repurpose AddressBook into ClassMATE #78
- User Guide:
- Added documentation for the features
addc,deletecandviewc#76 - Rearranged order of the features to improve readability #76, #238
- Updated command summary and improve readability #76, #238
- Added Java 11 download instructions #140
- Made the user guide more personable #140
- Added warnings to commands that involved deletion of data #238, #246
- Fixed spelling and grammatical errors #246
- Added hyperlinks to increase navigability #246
- Added student mark commands in command summary #246
- Added documentation for the features
- Developer Guide:
- Team-Based tasks:
- Managed documentation for releases
v1.1-v1.4(4 releases) on GitHub - Conducted manual testing of features based on descriptions provided in the User Guide.
- Refactoring:
- Refactored Person to Student
- PR #93
- I refactored all mentions and instances of
PersontoStudentto make ClassMATE more specific to its target users and its purpose, which in short is to keep a record of students.
- Refactored AddressBook to Classmate
- PR #116
- I refactored all mentions and instances of
AddressBooktoClassMATEto differentiate ClassMATE from AddressBook which we adapted, as it is now a different application.
- Refactored Person to Student
- Bug Fixes:
- Managed documentation for releases
- Review Contributions
- Community Contributions