Project: FoodRem

FoodRem is an Inventory Management System that empowers small food and beverage (F&B) restaurant managers to manage inventory and obtain insights from inventory data. As a restaurant manager, you can easily view and edit your inventory during your daily operations. Utilize FoodRem’s flexible tagging system to help you organize your inventory according to your business needs. Finally, streamline your business decisions by deriving insights from your inventory usage through FoodRem’s statistics – you can keep track of metrics such as food wastage amount if you wish!

Given below are my contributions to the project.

  • New Feature: Statistics feature

    • What it does: Calculates some statistics regarding the Items and Tags in FoodRem’s inventory, and displays them to the user. Statistics include: Top three most commonly used tags, top three most expensive items in inventory, total cost accrued due to food waste.
    • Highlights: These statistics were chosen after discussion as they were determined to be most useful and provided a high degree of flexibility. It was not easy to choose the statistics.
  • New Feature: Item class

    • What it does: Provides an internal representation of an Item in FoodRem. Adapted from the original AB3’s Person class, I laid the foundation by adding the necessary attributes to represent an Item. I also wrote test cases for the Item class.
    • Justification: Represent the Item to be stored in a restaurant’s inventory. It is necessary as it represents the business logic of the program.
    • Highlights: Improvements were made over the original Person class, where SWE principles, like the Open-Closed principle, was used to refactor and design new code.
    • Credits: AddressBook - Level 3’s original codebase, where we adapted the Person class and other relevant classes.
  • New Feature: inc, dec, view commands

    • What it does: inc allows the user to increment a chosen item by a specified quantity. dec allows the user to decrement a chosen item by a specified quantity. view displays all relevant information about an Item, such as the quantity, name, tags, to the user.
    • Justification: These are key features for FoodRem.
  • New Feature: sort command

    • What it does: This command allows users to sort the currently displayed Item list by a specified criteria. This facilitates the display of statistics to the user.
    • Justification: One of the key features for FoodRem.
    • Highights: Faced complexity as it initially allowed sorting by multiple criteria, such as by name and quantity. Eventually refactored to only sort by one criteria.
  • Code contributed: RepoSense link

List of PRs is incomplete, only vital ones are shown.

  • Enhancements to existing features:

    • Add Item model PR#143 Pull Request #143
      View on GitHub
    • Add Item Unit Tests PR#155 Pull Request #155
      View on GitHub
    • Add Sort Command PR#158 Pull Request #158
      View on GitHub
    • Add Increment and Decrement Command PR#161 Pull Request #161
      View on GitHub
    • Add View command PR#209 Pull Request #209
      View on GitHub
    • Add Statistics Command PR#360 Pull Request #360
      View on GitHub
    • Update find command PR#367 Pull Request #367
      View on GitHub
    • Fix stats command PR#372 Pull Request #372
      View on GitHub
  • Documentation:

    • User Guide:
      • Add User Guide section PR#82 Pull Request #82
        View on GitHub
      • Add Acknowledgements section to User Guide PR#162 Pull Request #162
        View on GitHub
      • Add Glossary section to User Guide PR#163 Pull Request #163
        View on GitHub
      • Consolidate UG v1.3 PR#264 Pull Request #264
        View on GitHub
      • Update UG with v1.3 Features PR#258 Pull Request #258
        View on GitHub
      • Update README with v1.3 items PR#311 Pull Request #311
        View on GitHub
      • Update UG after Refactoring PR#318 Pull Request #318
        View on GitHub
      • Improve UG for v1.3 PR#335 Pull Request #335
        View on GitHub
      • Fix UG after Peer Review PR#351 Pull Request #351
        View on GitHub
      • Fix find command description in Command Summary PR#324 Pull Request #324
        View on GitHub
      • Add warning for find command PR#539 Pull Request #539
        View on GitHub
    • Developer Guide:
      • Add Glossary, UC3, UC4 to Developer Guide PR#87 Pull Request #87
        View on GitHub
      • Add Glossary section to Developer Guide PR#164 Pull Request #164
        View on GitHub
      • Add Sorting user stories to DG PR#210 Pull Request #210
        View on GitHub
      • Add Sort Command UML PR#232 Pull Request #232
        View on GitHub
      • Update Developer Guide PR#528 Pull Request #528
        View on GitHub
  • ** Features**:

    • Add Item model PR#143 Pull Request #143
      View on GitHub
    • Add Sort Command PR#158 Pull Request #158
      View on GitHub
    • Add Increment and Decrement Command PR#161 Pull Request #161
      View on GitHub
    • Add View command PR#209 Pull Request #209
      View on GitHub
    • Add Statistics Command PR#360 Pull Request #360
      View on GitHub
    • Update find command PR#367 Pull Request #367
      View on GitHub
    • Fix stats command PR#372 Pull Request #372
      View on GitHub