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.

  • Major Refactoring: Refactor AB3 into FoodRem

    • What it does: Removes all occurrences of AB3. Converts the Person class into an Item class.
    • Justification: This was essential in creating the minimum viable product and laid the groundwork for further extensions.
    • Highlights:
      • The refactoring was a challenging process as the changes must be documented along with the test cases. It was critical to ensure the test cases were still relevant to the Item class rather than Person class.
      • The refactoring meant that all commands of AB3 were extensively modified to suit FoodRem:
        • Command to list all items
        • Command to find an item
        • Command to create a new item
        • Command to edit an existing item
        • Command to delete an item
      • Each Item field has a respective class
        • A class has to be created for each of the following fields: name, quantity, unit, bought date, expiry date, price, and remarks.
        • A validation class was created for each individual field to ensure easy extension.
      • Commands such as the help, exit and reset, commands required minimal changes.
    • Pull requests : Refactoring Person to Item PR#157 Pull Request #157
      View on GitHub
  • New Feature: Added the ability to add a remark

    • What it does: Allows the user to add a remark to an item.
    • Justification: This feature improves the user’s experience as they are now able to include notes specific to an item.
    • Pull requests : Add remarks fields and remarks command PR#254 Pull Request #254
      View on GitHub
  • New Feature: Add the user interface for tags
    • What it does: Allows the user to view results of tag commands in a beautiful format rather than plain text.
    • Justification: This feature standardises the UI of Items and Tags.
    • The implementation was extended from the current UI of Items which was created by Richard Dominick.
    • Pull requests : Add UI for tags PR#340 Pull Request #340
      View on GitHub
  • Enhancements to the help command:

    • Enhanced help command to provide help for individual commands rather than a generic message.
    • Enumeration of CommandWords was done.
    • Pull requests : Modify help command to provide help for each individual command PR#201 Pull Request #201
      View on GitHub
  • Enhancements to the inc and dec command:

    • Enhanced inc command and dec command to have optional qty prefix.
    • This was done to make it easier to increment and decrement the quantity of an item.
    • Pull requests : Modify increment and decrement command to have optional qty prefix PR#183 Pull Request #183
      View on GitHub
  • Code contributed: RepoSense link

  • Project management:

    • Created the following milestones V1.1, V1.2, V1.3, V1.4
    • These milestones were essential in ensuring the group on track in our tasking.
  • Documentation:

    • User Guide:
      • Add skeleton for the User Guide PR#35 Pull Request #35
        View on GitHub
      • Add value preposition of FoodRem in the User Guide PR#147 Pull Request #147
        View on GitHub
      • Update Quick Start of User Guide, and reorganise content page PR#141 Pull Request #141
        View on GitHub
      • Add documentation for the help feature PR#90 Pull Request #90
        View on GitHub
    • Developer Guide:
      • Refactored AB3’s Developer Guide to suit FoodRem. PR#233 Pull Request #233
        View on GitHub
      • Added “About FoodRem” section. PR#433 Pull Request #433
        View on GitHub
      • Added “How to use the Developer Guide” section. PR#433 Pull Request #433
        View on GitHub
      • Added “General Implementation Details” for Item-related features. PR#531 Pull Request #531
        View on GitHub
      • Added section on “Incrementing and Decrementing the quantity of an item”. PR#531 Pull Request #531
        View on GitHub
      • Added section on “General Features”. PR#531 Pull Request #531
        View on GitHub
  • Community:

    • Reported bugs and suggestions for other teams in the class:
      • Stats command do not calculate amount wasted by performing qty * price Issue#449 Issue #449
        View on GitHub
      • Stats command expiry date do not count items that expire today Issue#448 Issue #448
        View on GitHub
      • Stats command fail on FoodRem having less than 3 items Issue#447 Issue #447
        View on GitHub
      • Rename tag does not modify tags in items Issue#293 Issue #293
        View on GitHub
      • Rename tag to same name is possible Issue#273 Issue #273
        View on GitHub

Other PRs:

  • Update AboutUs page PR#14 Pull Request #14
    View on GitHub
  • Add skeleton for User Guide PR#35 Pull Request #35
    View on GitHub
  • Update aboutUs page to include information about Yi Xian PR#89 Pull Request #89
    View on GitHub
  • Update userguide to include help command PR#90 Pull Request #90
    View on GitHub
  • Add skeletal PPP PR#91 Pull Request #91
    View on GitHub
  • Add skeletal for UC7 and UC8 in DeveloperGuide.md PR#92 Pull Request #92
    View on GitHub
  • Add image for aboutUs page PR#96 Pull Request #96
    View on GitHub
  • Remove boilerplate and update roles in About Us page PR#100 Pull Request #100
    View on GitHub
  • Point CI banners to own project and remove traces of AB3 in README.md PR#102 Pull Request #102
    View on GitHub
  • Add use case 7, use case 8 and user stories for inventory items PR#129 Pull Request #129
    View on GitHub
  • Update Quick Start of User Guide, reorganise content page PR#141 Pull Request #141
    View on GitHub
  • Change TYPE to UNIT in UserGuide.md PR#145 Pull Request #145
    View on GitHub
  • Add value preposition PR#147 Pull Request #147
    View on GitHub
  • Refactoring Person to Item 2 PR#157 Pull Request #157
    View on GitHub
  • Convert Add command to New command PR#173 Pull Request #173
    View on GitHub
  • Rename command word from "delete" to "del" PR#174 Pull Request #174
    View on GitHub
  • Modify Find item messages and test to match FoodRem instead of AddressBook PR#175 Pull Request #175
    View on GitHub
  • Rename "Clear" to "Reset" PR#176 Pull Request #176
    View on GitHub
  • Modify increment and decrement command to have optional qty prefix PR#183 Pull Request #183
    View on GitHub
  • Modify help command to provide help for each individual command PR#201 Pull Request #201
    View on GitHub
  • Allow easier extension to help command by removing switch case PR#211 Pull Request #211
    View on GitHub
  • Update help, edit and delete command PR#212 Pull Request #212
    View on GitHub
  • Add price field in item PR#229 Pull Request #229
    View on GitHub
  • Move enum package to commons and remove traces of AB-3 from DG PR#233 Pull Request #233
    View on GitHub
  • Move enum package to commons and remove traces of AB-3 from DG PR#233 Pull Request #233
    View on GitHub
  • Add UML diagram for HelpCommand PR#234 Pull Request #234
    View on GitHub
  • Add remarks fields and remarks command PR#254 Pull Request #254
    View on GitHub
  • Standardise help command PR#255 Pull Request #255
    View on GitHub
  • Add test for Decrement, Increment, View, Sort, Help, Exit and Reset PR#257 Pull Request #257
    View on GitHub
  • Improve UG and add remarks and price fields PR#272 Pull Request #272
    View on GitHub
  • Fix "Rename tag to same name is possible" bug PR#274 Pull Request #274
    View on GitHub
  • Fix index out of bound bug and standardise naming of index across item command PR#282 Pull Request #282
    View on GitHub
  • Restructure expiry date and bought date to use singleton design pattern PR#290 Pull Request #290
    View on GitHub
  • Fix rename tag not changing tags within items PR#296 Pull Request #296
    View on GitHub
  • Fix storage modification causing bugs PR#298 Pull Request #298
    View on GitHub
  • Create welcome message for user that shows error if datafile has issue PR#299 Pull Request #299
    View on GitHub
  • Show empty FoodRem when data file is corrupted PR#303 Pull Request #303
    View on GitHub
  • Add tag related images PR#314 Pull Request #314
    View on GitHub
  • Centralise logic for validate string regex PR#316 Pull Request #316
    View on GitHub
  • Add remarks to help PR#317 Pull Request #317
    View on GitHub
  • Ensure all commands uses a parser PR#329 Pull Request #329
    View on GitHub
  • Add UI for tags PR#340 Pull Request #340
    View on GitHub
  • Prevent special chars in find command PR#355 Pull Request #355
    View on GitHub
  • Modify view command to show error for negative index PR#357 Pull Request #357
    View on GitHub
  • Modify price validator to not accept 3.e1 PR#358 Pull Request #358
    View on GitHub
  • Update UG PR#359 Pull Request #359
    View on GitHub
  • Add storage restriction to items and tags PR#362 Pull Request #362
    View on GitHub
  • Apply negative index validation to all commands PR#365 Pull Request #365
    View on GitHub
  • Update User Guide to match changes to codebase PR#368 Pull Request #368
    View on GitHub
  • Fix date validation PR#370 Pull Request #370
    View on GitHub
  • Update find to match new find PR#371 Pull Request #371
    View on GitHub
  • Update help command to use ITEM_NAME and TAG_NAME instead of NAME PR#374 Pull Request #374
    View on GitHub
  • Fix sorting by name PR#375 Pull Request #375
    View on GitHub
  • Set height of text area to be 450 PR#376 Pull Request #376
    View on GitHub
  • Add minor changes in the Userguide PR#429 Pull Request #429
    View on GitHub
  • Fix broken glossary term for expiry date and broken link for flags PR#432 Pull Request #432
    View on GitHub
  • Fix getColor for tags PR#434 Pull Request #434
    View on GitHub
  • Use stats parser to restrict command arguments PR#435 Pull Request #435
    View on GitHub
  • Ensure we cannot create an item with bought date after expiry date PR#450 Pull Request #450
    View on GitHub
  • Fix error message that says "the FoodRem" PR#466 Pull Request #466
    View on GitHub
  • Update PPP PR#504 Pull Request #504
    View on GitHub
  • Improve code quality PR#517 Pull Request #517
    View on GitHub
  • Fix minor errors PR#519 Pull Request #519
    View on GitHub
  • Add reposense @@author tag PR#522 Pull Request #522
    View on GitHub
  • Fix grammar in DG PR#524 Pull Request #524
    View on GitHub
  • Add DG help command sequence diagram and activity diagram PR#527 Pull Request #527
    View on GitHub
  • Fix bought date to be in future in test cases PR#465 Pull Request #465
    View on GitHub
  • Fix error message that says "the FoodRem" PR#466 Pull Request #466
    View on GitHub
  • Update PPP PR#504 Pull Request #504
    View on GitHub
  • Improve code quality PR#517 Pull Request #517
    View on GitHub
  • Fix minor errors PR#519 Pull Request #519
    View on GitHub
  • Add reposense @@author tag PR#522 Pull Request #522
    View on GitHub
  • Fix grammar in DG PR#524 Pull Request #524
    View on GitHub
  • Add DG help command sequence diagram and activity diagram PR#527 Pull Request #527
    View on GitHub