Samuel Lau Yi Ren's Project Portfolio Page
Project: Ailurus
Ailurus helps organizing committees account for details of their members. It provides users with convenient viewing and editing access to all information, thus providing much convenience in their work. The user interacts with it using a CLI, and it has a GUI created with JavaFX.
Given below are my contributions to the project.
New Features
- Implemented event and module.
- What it does: Event contains members, name, date and allows us to mark and store the attendance of members. It can be saved and stored in json like member. Event extends module. Module is an abstract class for event, task and member.
- Justification: This feature improves the product by allowing users to plan and organize events for their members.
- Highlights: This enhancement affects how the GUI will be presented, and we now have to accommodate the presence of events in the model, storage and future commands. It required an in-depth analysis of design alternatives such as whether to have members have events as a field or events to have a set of members.
- Notable PRs: PR#99, PR#108, PR#133
- Implemented filter attributes to list for task and member.
- What it does: Members can be listed by event and attendance as filters. Task list for a member can be filtered by status or if overdue.
- Justification: This feature improves the product by making it easier to search and view tasks or members through filters. It aids with administrative matters.
- Highlights: The enhancement affects the lists displayed in the GUI, only showing the matches. Commands will be required for which to show the full unfiltered list again.
- Notable PRs: PR#154
- Helped with the implementation of editing of event.
- What it does: Events in Ailurus can be edited to have their names, members and date changed.
- Justification: This feature improves the product by allowing changes in existing events.
- Highlights: The enhancement only changes what is specified. If only name is specified, only that will change for the event. Command can also be used to clear an event of all its members.
- Notable PRs: PR#243
- Implement the efind command.
- What it does: Events can be searched for by keywords in their names. Keywords do not have to be exact matches and do not care for alphabetical-casing.
- Justification: This feature improves the product by making it easier to search and find events by name even if you only know part of the name.
- Highlights: The enhancement affects the lists displayed in the GUI, only showing the matches. Commands to list the entire list again can be used after the efind command.
- Notable PRs: PR#155
Code contributed (RepoSense link)
Project management
- Opened issues that sought to properly track the progress of adding and enhancing features.
- Reviewed and approved team members’ PRs for merging (more details in the Community section)
Enhancements to existing features
- Changed the implementation of find command to be renamed as mfind and to allow partial matches without caring about alphabetical-casing.
- Previously find command has to rely on exact matches when searching for keywords. No partial matches were allowed.
- Notable PR: PR#98
Documentation
- Developer guide
- User guide