A collaborative university project developed by a 7-person team, designed to help users plan grocery shopping more efficiently through personalized suggestions, past-purchase analysis, and an intuitive JavaFX interface.
The goal of this project was to build a functional grocery-shopping assistant that reduces planning effort, avoids forgotten items, and supports users through behavior-based product recommendations.
The software analyzes purchase history, manages grocery lists, and provides intelligent suggestions based on user behavior. The application follows a layered architecture and was developed using Agile (Scrum) across 5 sprints.
| Feature Area | Description |
|---|---|
| ๐ Smart Grocery List | Manage products, categories, quantities, units, and past shopping history |
| ๐ค Suggestion Engine | Provides personalized item recommendations based on Apriori algorithm + heuristics |
| ๐ Purchase Analytics | Learns from user history to auto-suggest recurring items |
| ๐ฅ๏ธ JavaFX GUI | Desktop interface for catalog, suggestions, and grocery list |
| ๐ Search & Filtering | Product search, selection, and list updates in real time |
| ๐ฆ Modular MVC Architecture | Clear separation of Model, View, and Controller layers |
| ๐ฅ Multi-user Collaboration | Team-based development, iterative design, multi-role responsibility |
The application adopts the Model-View-Controller (MVC) pattern, ensuring modularity, testability, and maintainability.
- Model โ Data handling, purchase history, suggestion algorithm, database layer
- View โ JavaFX UI screens (catalog, grocery list, suggestion view, history)
- Controller โ Input handling, workflows, list operations, suggestion logic binding
The system supports all core user actions:
- Create / update / delete grocery list items
- Import past purchases
- Generate and accept/reject suggestions
- Search within product catalogs
- Handle database persistence and recommendation updates
The following screenshot shows the final high-fidelity prototype delivered at the end of Sprint 5:
- 5 total sprints
- Weekly internal progress meetings
- Bi-weekly stakeholder reviews with professor & customer
- Dedicated roles (Scrum Master, Product Owner rotation, etc.)
- Full documentation: Stakeholder analysis, functional & system requirements, risk analysis, cost estimation, prototyping, sprint reports
| Area | Contribution |
|---|---|
| ๐ฏ Role | Scrum Master (Sprint 5) + Developer |
| ๐ง Frontend (JavaFX UI) | Catalogue / Past Purchase search field, Suggestion GUI |
| โ๏ธ Backend | Grocery list marking logic, past purchase search endpoint |
| ๐งฎ Algorithms | Suggestion logic improvements, duplicate-prevention rules |
| ๐ Documentation | Final report โ Section 4.6, Sprint 5 development report |
| ๐ค Team Work | Sprint planning, task breakdown, cross-team communication |
This project significantly strengthened my understanding of:
- Spring Boot application flow and Java backend architecture.
- Designing clean, modular software using MVC principles.
- Real-world team collaboration under Agile methodology.
- Integrating frontend and backend systems within a multi-developer environment.
- The importance of requirement engineering, stakeholder feedback, and iterative design.
This project was conducted as part of a Software Engineering university course under supervised academic guidance.
It reflects collaborative work by a seven-member development team, combining technical implementation with analytical documentation and design.
The source code for this project is not publicly available due to university copyright and collaboration agreements.
This repository only contains images and a detailed README to document the projectโs structure, design, and outcomes.
All materials are shared for educational and portfolio purposes only.


