FoodSave
A full-stack food waste reduction marketplace that connects food businesses with customers by allowing surplus and near-expiry food items to be sold at discounted prices through a role-based platform with administrative oversight.
Screenshots





Key Metrics
Admin · Business
Monolithic MVC Application
MySQL
Apache Tomcat
Session-Based
Hibernate
Overview
FoodSave is a multi-role marketplace platform designed to reduce food waste by enabling businesses to sell surplus food at discounted prices before expiry. Customers can browse listings and place pickup orders, while administrators manage business approvals and platform governance.
Problem
Food waste remains a major issue for restaurants, bakeries, and food vendors who often discard surplus inventory. At the same time, customers may seek affordable food options. A system was needed to connect these groups while managing inventory, approvals, and ordering workflows.
Solution
Built a role-based marketplace where businesses can list surplus food items, customers can purchase discounted inventory, and administrators can control business onboarding and platform moderation through structured approval workflows.
Architecture
Traditional Java enterprise architecture using Spring MVC for request handling, Hibernate ORM for persistence, MySQL as the relational database, JSP for server-side rendering, and Apache Tomcat for deployment. The system follows a layered MVC architecture with Controllers, DAO layer, Hibernate ORM, and relational database storage.
Challenges
- Designing a multi-role access control system.
- Managing inventory lifecycle transitions.
- Implementing order state management workflows.
- Configuring Spring MVC without Spring Boot.
- Integrating Hibernate with Spring ORM.
- Designing normalized relational database schemas.
- Managing session-based authentication flows.
Lessons Learned
- Spring MVC internals and DispatcherServlet lifecycle.
- Hibernate SessionFactory configuration and ORM patterns.
- Relational database design and normalization.
- DAO pattern implementation.
- Enterprise Java application architecture.
- Session-based authentication mechanisms.
- Domain-driven state machine modeling.
- Traditional Java web deployment workflows.