-
-
Our Logo
-
Landing Page
-
Dashboard showing demand trends for each ingredient
-
Dashboard showing demand predictions for the next month based on trained (mock) data
-
Products Page (add, delete, edit) - include ingredients needed for each product
-
Ingredients Page (add, delete, edit) - manage ingredient inventory
-
Transaction Page (add, delete, edit) - when transaction is made, amount of ingredient for order is automatically deducted from ingredients
-
Business Intelligence Chatbot built with LLM to chat based on your transaction data
PROBLEM STATEMENT
Theme 2, Subtheme 1 (Enhancing Food Security)
As the majority of Singapore's food supply is imported, optimising the supply chain is critical. Implement algorithms that can predict demand, manage inventory and optimise logistics to reduce food waste and streamline supply chain processes.
Our Solution
We have built an inventory management system for restaurants equipped with machine learning algorithms and AI tools. It is able to learn from past transaction data, and suggest predictions for future demand of ingredients and potential revenue, allowing restaurants to anticipate demand for the upcoming month, preventing over or under-ordering, allowing them to optimise their supply chain process, while helping to manage their inventory.
As the majority of Singapore's food supply is imported, optimising the supply chain is critical. We built this app to help restaurants and food chains predict demand, manage inventory and optimise logistics to reduce food waste, and streamline their supply chain processes.
How our features address the problem statement
Customisation
- The web-app allows restaurants to key in the ingredients available in their inventory, as well as the items on their menu, together with the amount of ingredients required for each menu item.
- This allows them to easily track and manage their inventory according to the store’s unique requirements
- This also improves the accuracy of our inventory management as we are able to closely estimate the amount of ingredients used each time a transaction is made.
Inventory Management System
- Stores can keep track of their food inventory using our web-app.
- Once a transaction or sale is made, the appropriate amount of ingredients will automatically be deducted from the inventory database (based on transaction data from the restaurant’s internal system). Stores are able to customise this amount based on the nature of their menu and recipes (See: Feature 1).
- Once the inventory levels for any ingredients dip below a certain safety level (based on the Economic Order Quantity (EOQ) formula), the store will be notified to repurchase and restock their inventory.
- Store owners can effortlessly manage the supply chain processes based on current demand, without resorting to scheduled repurchasing or manual decisions which often lead to over-ordering and food waste. This threshold is calculated using a Reorder Point (ROP).
Demand Prediction Model using the store’s sales data
- We have implemented a machine learning model to predict the demand for each food item (ingredient) offered by the store, on a monthly basis. Seasonal trends like holidays are taken into consideration.
- Time Series Analysis: Models like ARIMA, SARIMA, and Prophet can predict future demand based on past trends.
- Machine Learning Models: Random Forests, Gradient Boosting, and Deep Learning models (LSTM, GRU) can handle complex patterns in data.
- Feature Engineering: Incorporate features such as historical sales data, holidays, weather conditions, promotional events, and economic indicators.
- Time Series Analysis: Models like ARIMA, SARIMA, and Prophet can predict future demand based on past trends.
- This allows the store to plan ahead based on the demand our model predicts for the next month
- During times of lower demand, the store can replenish their ingredients less frequently, and vice versa.
- This prevents over-ordering or under-ordering of ingredients, reducing food waste.
Data Visualisation
- The data pertaining to the store can be accessed easily, in the form of bar graphs and line charts showing the current trend (and predictions) of the demand for various ingredients.
- Key statistics like the inventory status and the predicted revenue are displayed on the dashboard for easy reference.
- This further streamlines the decision making processes within the supply chain.
AI integration (Business Intelligence Chatbot)
- Rather than providing pure data to firms and having them carry out data analysis themselves, we used an AI model which can help businesses analyse their sales trends, predictions and inventory levels and provide feedback to owners on inventory maintenance, waste reduction and more.
- This makes the predictions by our machine learning model more meaningful and useful to firms using our web app.
- This chatbot can answer any questions from the administrators, based on the existing data in the system.
- Eg. How much sales did we make last month? How can we improve our inventory management?
HOW DID YOU BUILD YOUR HACK?
Our project was built using a comprehensive tech stack designed to provide robust functionality, aesthetic design, and efficient data handling.
Next.js
- Purpose: Utilized for both frontend and backend functionalities.
- Implementation: Next.js allowed us to create a seamless integration between our server-side and client-side rendering, enabling fast, dynamic, and scalable web applications. We leveraged its powerful features to manage routing, API routes, and server-side rendering effectively.
TailwindCSS and Shadcn
- Purpose: Employed for the styling of UI/UX components.
- Implementation: TailwindCSS provided us with utility-first CSS framework capabilities, allowing for rapid and custom styling directly within our components. Shadcn complemented this by offering a set of pre-designed, accessible UI components that ensured a consistent and visually appealing user experience.
Supabase and PostgreSQL
- Purpose: Served as our database solution.
- Implementation: Supabase, built on PostgreSQL, was chosen for its real-time capabilities and ease of integration. We utilized it to handle our user authentication, data storage, and real-time data updates, ensuring secure and efficient database operations.
Flask
- Purpose: Used for API calls.
- Implementation: Flask, a lightweight WSGI web application framework in Python, was used to create our RESTful API endpoints. This enabled smooth communication between our frontend, machine learning model, and the database, ensuring data consistency and integrity.
scikit-learn and other ML libraries
- Purpose: Utilized to build our machine learning model for demand predictions.
- Implementation: The sklearn library provided us with essential tools to preprocess data, train our demand prediction model, and evaluate its performance. We integrated the model with our Flask API to deliver real-time demand forecasts to our frontend application.
CHALLENGES WE FACED
Integration of Frontend and Backend Machine Learning Functionalities
- Seamlessly integrating the machine learning model with our frontend and backend posed a considerable challenge. Ensuring smooth communication between these components required meticulous planning and implementation.
- To overcome this, we leveraged Next.js for its full-stack capabilities, enabling us to handle both client-side and server-side operations within a unified framework. Flask was instrumental in creating robust API endpoints that facilitated effective data exchange between the machine learning model and our application’s frontend. Additionally, thorough testing and debugging were essential to ensure seamless integration and functionality.
Lack of Reliable, Complete Data for Model Training
- Acquiring high-quality, complete datasets for training our demand prediction model was a significant obstacle. Incomplete or unreliable data can severely impact the accuracy and effectiveness of a machine learning model.
- We employed several strategies to mitigate this issue. First, we utilized data augmentation techniques to artificially expand our dataset, thereby improving the robustness of our model. We also implemented data cleaning procedures to ensure the integrity and consistency of the data we had.
Lack of time
- Due to the complex nature of our web application, it was a challenge to complete it within less than 48 hours, hence some features have to be compromised, allowing for future room for improvement
Using our application
You either can either use our live deployed version on Vercel link or deploy it locally in development environment with the steps inside our GitHub README.md file here.
NOTE: the deployed version of Vercel does not have the demand prediction feature, as we did not deploy our Flask application on the web
Built With
- flask
- next.js
- postgresql
Log in or sign up for Devpost to join the conversation.