Loh Jing Yen's Project Portfolio Page
Project: ResiReg
ResiReg is a desktop residential college management application used for managing a residential college such as Cinnamon College. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 20 kLoC.
Given below are my contributions to the project.
- New Feature: Added the ability to archive the current Semester.
- What it does: allows the user to move the current Semester’s allocation into an archived file. The application is then set to the next Semester, and future allocations will be set with respect to that Semester.
- Justification: This feature improves the product significantly because the allocation data the user operates on is semester specific. This allows them to conveniently refresh the data for a new Semester with a single command, while ensuring all data from the previous semester is preserved.
- Highlights: This enhancement affects existing allocations and models to be added in future, such as Bills. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required the Semester to be made Observable, rather than a POJO like the rest of the AddressBook/ResiReg models.
- New Feature: Added
--allocated
and--vacant
flags to therooms
command- What it does: allows the user to optionally view only allocated or vacant rooms, versus the original command where it would display all the rooms.
- Justification: This allows the user more fine grained viewing of the rooms, for when they only want to view rooms with students residing in them (e.g. for maintainence services), or when they only want to view vacant rooms (e.g. to see if last minute allocations are allowed for an Exchange student)
- Highlights: Unlike most commands, these flags are exclusive, so the user cannot pass in both together.
-
Code contributed: RepoSense link
- Project management:
- Created GitHub Organization and team repository, and configured organization permissions
- Managed releases
v0.1
-v1.1
(1 release) on GitHub (although I did the releases for several other milestones, my teammates coordinated those weeks)
- Enhancements to existing features:
- Documentation:
- Community:
- Tools:
- Added a PR template to the team repo #87