- Donation and Request System: Users can donate surplus food or request food supplies based on availability.
- Inventory Tracking: Helps both donors and recipients manage the food items, reducing unnecessary waste.
- User Authentication: Secure login and user management to facilitate trusted interactions.
- Notifications: Automated alerts for available food and requests.
FR – 01: Users Registration:
B2DD- Registration:Users must have the ability to create accounts on the platform by providing their name, email, password, and selecting the user type (i.e., retailers, consumers, or charitable organizations).
- AuthenticationThe platform must have to login/logout of the functionality
- Inventory Management: Retailers must have the capability to manage their inventory of food items, including adding new items, updating quantities, and setting expiration dates for each item.
- Surplus Food Identification: Retailers should be able to identify and flag surplus food items that are nearing expiration or are in excess of demand. Surplus items are those with expiry dates within the next one week.
- Listing Surplus Food Items: Retailers must have the functionality to list surplus food items on the platform for donation or sale at a discounted price. An item is up for Donation or for sale at a reduced price is determined by the Retailer.
- Claim Food: Charitable organizations such as Food Banks/Missions should be able to claim the food item listed by retailers available for donation.
- Update Inventory: The retailer inventory must be updated accordingly once a particular food item is claimed by a Charitable Organization.
- a. Purchase: Consumers of the platform should be able to purchase (not real transaction) the items listed by the retailers at a given discount rate.
- Update Inventory: The retailer inventory must be updated accordingly once a particular food item is purchased by a consumer.
- User Subscription: Users can subscribe to receive surplus food alerts based on their location, communication method (email or phone) and food preferences
- Automatic Notifications: Whenever retailers list surplus food items on the platform, users subscribed to alerts receive automatic notifications via email or phone
Registration:
- Retailers: Retailers play a crucial role in our platform by managing surplus food items. They have the ability to add new items, update quantities, set expiration dates, and specify whether the items are available for donation or sale at a reduced price. Additionally, retailers can easily flag surplus food items that are nearing expiration or are in excess of demand. Once flagged, these surplus items can be promptly listed on the platform for donation or sale.
- Charitable Organization: Charitable organizations are empowered to seamlessly claim surplus food items listed by retailers and promptly update their inventory accordingly. By simply selecting the desired items, charitable organizations can efficiently claim the available surplus food, ensuring that it reaches those in need.
- Consumers: Consumers have the opportunity to purchase surplus food items at discounted prices through this system. By browsing the available listings, consumers can easily identify and select items they wish to purchase at reduced rates.
Our database shall have 6 tables
- Users: This table has general user details like name, email, phone, location, and password along with the user type (charity, consumer, retailer), and user preferences for subscription.
- Item:This table has details about food items and their category (poultry, dairy, etc.).
- User_inventory: This table contains the details about retailer’s inventory. It has details regarding batch number, batch expiry date, quantity, unit price, and final price.
- Transaction: This table shall concern the transactions that take place once a consumer buys from a retailer. The quantity purchased shall be decreased from the retailer’s inventory.
- Charity inventory:This table shall contain details of the stock held by charities to be given as donation.
- UserAccountThis table contains details about the account balance of customers.
- Users will have an account with a balance, we will perform validity checks on their stored, store credit to make sure that purchases are valid.
- The passwords are stored in a plain text format in the database. Ideally, they should be encoded to safeguard user information. However, outsiders can’t access our database without credentials.
- SQL statements are prepared using preparedStatement() so that users cannot SQL inject to pry at, or manipulate our database.
- Users will only interact with the GUI and won’t have any interaction with the JAVA code.
- Laptop with Java: A device running a Java application.
- Web Server with a Website: A server hosting a website, which can be accessed by the user client.
- DB Server with MySQL DB: The database server running MySQL, which stores and manages data for the website.
- User Client with an HTML Browser: A user’s device with a web browser, used to access the website hosted on the web server.
- Mayank Arora
- Andres Porras
- JingYi Li
- Aaron Thompson
High Level Design : https://docs.google.com/document/d/1SkjawkOkLsN35J8bnhqSzhr_HtTyTBvO67HUS49Nnhg/edit?usp=sharing