Gwee Yeu Chai - Project Portfolio Page
Project: JustBook App v3.0 Overview
JustBook - Version 3.0 is a desktop application typically designed for use by a modern poly or JC student, in registering his or her personal bookings or appointments. It leverages on an online database storage facility, backed by an offline backup file. The user interacts with it using a CLI. It is written in Java(ver. 11), and has about 702 LoC.
Summary of Contributions
- New Feature:
undel acommand - added the ability to undo a previousdel --all(delete all) command.- What it does: allows the user to undo a previous clear all operation on the online database records.
- Justification: This feature is to help a busy student user undo the mistake in command or decision made in haste, and the program should afford an easy way to recover from them.
- Highlights: This command is designed to work just after a previous delete all call, as well as several user entries
later, so long as the
save,byeorexitcommand has not been used. - Special feature: The above works in tandem with the deliberate add-in append (file write) design in
addcommand, so that the latest additions are all saved to the offline backup file and thus get restored from file, along with previous records, upon command invocation.
- New Feature:
show wecommand - displays only the month’s weekends and book listings, in chronological order.- What it does: allows the user to see at a glance if weekends are occupied or there are free slots for use.
- Justification: This feature is to help a socially active student user zoom in on weekend(s) slots.
- Highlights: This command is designed to display weekend dates nearest the point of entry date of the user. A “Status: no bookings yet.” visual message will be displayed under weekend slots with no bookings yet.
- Special feature: The commands works in tandem with the normal app functions with visual listings.
-
Code contributed: Team04_gweeyc
- Project management:
- Managed releases v1.0 - v3.0 (3 releases) on GitHub
- Overall Administrator of Team Repo
- Enhancements to existing features:
- Applied ResolverStyle.STRICT condition on customized DateTimeFormatter patterns to ensure only valid dates are used
- Designed in the append feature in
addcommand to have a record of every new entry saved in the offline backup file (facilitatesundel amore flexible usage, power outages or online disruption recovery) - Enabled logging and included assert statements where helpful
- Made use of HashMap and Map.Entry APIs for fast storage, retrieval and compare operations in the creation of block list, unblocking functions and the policy on each new appointment entry date
- listWeekends method, underpinning the
show wecommand, had its particular search processes optimized so that unneeded searches are straightaway bypassed - Display of dates and appointment listings processes had been standardized, optimized for speed and designed to work in synchronicity with all the program normal functions
- The input date format was made flexible so user can enter in date digits without a ‘0’ prefix if preferred.
- Wrote new JUnit 5 tests for JustBookTest.java (Pull request #45)
- Documentation:
- User Guide:
- Developer Guide:
- Added implementation details of the
show wefeature - Contributed the entire Design section of the Guide
- Ensure the overall grammar correctness and expressions used throughout
- Added implementation details of the
- Community:
- Kicked start the Project with the 1st. skeletal code framework the Team use for subsequent codings
- Contributed to forum discussions
- Overall admin duties enacted for the Team Repo setup, maintenance, operations and team encouragement
- PRs reviewed (#7, #13, #25)
- Tools:
- Integrated third party libraries (Guava & JUnit 5.8.1) to the project