Project: BookCoin

BookCoin is a CLI facility management system which allows users to type in commands to manage bookings and presents users a structured and detailed information on facility availability.

Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • New Feature: Added the ability to delete previously added bookings.
    • What it does: allows the user to delete any previous added bookings one at a time.
    • Justification: This feature improves the product by allowing users to delete a booking permanently when the booking is no longer valid.
  • New Feature: Added multi-step prompting structure for commands and implemented the structure on add_booking
    • What it does: allows the user to input information step by step
    • Justification: A lot of information input is needed to create a booking, making the add_booking process troublesome and confusing. This feature breaks down the input process into several steps, improving the input experience for users.
    • Highlights: This enhancement affects existing and future multi-step commands. It required an in-depth analysis of design alternatives to ensure subsequent implementations for multi-step commands can adopt the same structure. The implementation too was challenging as it required complex management of states between different classes while ensuring OOP and design principles are maintained.
  • New Feature: Added the ability to find bookings by booker, venue, or date.
    • What it does: allows the user to filter any previously added bookings by their attributes.
    • Justification: This feature improves the product significantly because a user can efficiently search for a booking with the specified field.
  • Enhancements to existing features:
    • Wrote tests for new features (pull request #142)
  • Documentation:
    • User Guide:
      • Wrote command examples
      • Updated command descriptions
    • Developer Guide:
      • Wrote uses cases
      • Wrote user stories
  • Community:
    • Set up GitHub team org and repo
    • Contributed to UI design mockup
    • Contributed to maintaining of issue tracker and release management