Overview
AceGrocer is a Java EE-based web application that allows users to register and verify their email via a tokenized link in order to access in-stock inventory and item location search.
Email verification is handled using JavaMail and token authentication.
This Grocery Store web application demonstrates a traditional monolithic architecture designed for administrative operations. Built using JSP, Servlets, and JDBC, it follows a classic MVC pattern and connects to a backend with options such as MySQL, HSQLDB databases. It is currently undergoing migration to a Spring Boot-based microservices architecture with separate services for users, inventory, and transactions for improved scalability and maintainability.
Architecture Diagram

Screenshot


Key Features
- Full CRUD functionality for users, inventory, and transactions
- MVC design using JSP (View), Servlets (Controller), and DAO (Model)
- Session-based authentication and admin authorization
- Database interaction using JDBC with DAO abstraction
- Tomcat server runtime and WAR packaging
Tech Stack
- Java EE - Servlets, JSP
- JDBC - Direct SQL access via DAO layer
- MySQL - Relational data persistence
- Apache Tomcat - Web application runtime
- Eclipse IDE - Development and testing
Modernization Roadmap
- Split business logic into independent Spring Boot microservices
- Replace JDBC with JPA + Spring Data
- Expose RESTful APIs and integrate with API Gateway
- Containerize services and deploy to Kubernetes
- Add CI/CD pipeline using GitLab or Jenkins
Challenges Solved
- Maintains clear MVC structure despite legacy tech stack
- Implements decoupling and DAO pattern for maintainability
- Demonstrates end-to-end business flow from UI to database
Use Cases
- Education on legacy Java EE patterns
- Baseline for refactoring legacy monoliths
- Administrative dashboards with user/inventory/transaction control
Contact
The Source code is private. For a full code walkthrough, deployment scripts, or a modernization demo, please contact me directly.
The demo will be made available via the following button after your successful request
Visit Homepage