Spring Boot Inventory Management System And e-checkout Counter
Requirements
Online-Grocery store Admin:
Create a back-end software to maintain Inventory of items in a general store.
input for launching application: 3 csv files with list of fruits & Vegitables(f&v), processed food items & stationary.
All the items have name, 15-digit barcode number, price & in-stock quantity
processed food can be vegan or non-vegan. they have manufacturing & expiring dates
Stationary is limited to only one item per type per purchase order.
Add an e-checkout counter
Stationary is limited to one quantity per item type per customer purchase order.
Purchase order will take:
• date of purchase,
• list of items (should accept bar-code or name),
• quantity of each,
• payment type (cash or card),
• membership number(optional).
Each purchase order will be assigned a receipt number on successful transaction.
Inventory should be updated after each transaction.
Maintain list of memberships with membership number, name, contact email & phone number.
Expected output(s):
REST APIs for:
All data is to be persisted.
REST API to add more quantity to stock (name/barcode & quantity)
REST APIs for list of,
all items in-stock with available quantity with details
in-stock f&v with details
in-stock processed food with details
in-stock vegan processed food with details
in-stock vegan processed food with details
in-stock stationary with details
Transaction details by receipt number.
Receipt numbers by membership number.
Receipt numbers without membership number.
Total sale amount on a specific date or between two dates.
Total quantities of each item sold on a specific date or between two dates.
Log remaining quantities of items at every configurable number of minutes.
Add new member and generate membership number.
Search items by full/partial name/barcode.
Maintain list of discounts on items. These should be applied at check-out and should be in receipt details.
List of suggested items based on previous purchases.
In postman processed food's get request works when searched by ID but doesnt when searched by food type.
example: /api/v1/processedFoods/VEGAN returns an error log
/api/v1/processedFoods/by-name/VEGAN returns an error log