Link Search Menu Expand Document

Project: BogoBogo

BogoBogo is a desktop inventory management application developed for small business owners. 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.

  • New Feature: Implemented the core components to enable placing orders.
    • What it does: allows the user to order items, add and remove items from order, and place the order to make a transaction.
    • Justification: This feature improves the product significantly because a user can not only log items in inventory but also monitor business dynamics via the order system.
    • Highlights: This enhancement affects existing model structures and new features to be added in the future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to multiple existing components while designing good interacting logic and abstraction between them.
  • New Feature: Added transaction history.
    • What it does: allows the user to check past transactions made via order system and calculates essential historical business statistics.
    • Justification: This feature improves the product significantly because a user can track transaction histories to better retrospect and manage business.
    • Highlights: This enhancement is added on top of the order system implemented in last feature to extend and make the order system interaction more complete and powerful.
  • Functional Code: Added commands to enable order related operations.
    • Implemented sorder, iorder, corder, and eorder commands and their parsers.
    • What it does: allows the Ui component to parse user commands of order operations and activates the Model and Storage components to execute the operations and update the internal states.
  • Code contributed: RepoSense link

  • Enhancements to existing features:
    • Wrote additional tests for existing features to increase coverage. (Pull requests #82 , #190)
  • Documentation:
    • User Guide:
      • Drafted the skeleton of the user guide in v1.1 #11
      • Added existing functionalities and features of v1.3 to user guide. #50
    • Developer Guide:
      • Drafted the skeleton of the developer guide in v1.3 #76
      • Drew the architecture class diagrams of Ui, Model, Storage components. #93
      • Added use cases for all commands and features implemented in v1.3 #93
      • Updated and drew new class diagrams of Model components to reflect new design structure #177
      • Refined and updated class diagrams to make them more and clean and readable #178
      • Drew object diagrams for Observer pattern. #184
      • Drafted the Effort appendix. #212
  • Manual Testing:
    • System Testing:
      • Tested all commands with positive and negative EP cases.
      • Logged and reported bugs to team for bug fix solutions.
    • Acceptance Testing:
      • Tested the app against User Guide.
      • Fixed User Guide inconsistency, ambiguity, and errors.
      • Logged and reported bugs and possible improvements to team for bug fix solutions. ( #197, #198, #199)
  • Community:
    • PRs reviewed: #37 , #38 , #42 , #92
    • Reported bugs and suggestions for other teams in the class ( examples: PE-D)