ShopEasy is a full-stack e-commerce web application built with JSP, Servlets, and JDBC (Java EE stack). It enables users to browse products, view details, manage a cart, and complete a checkout process. Admins can manage the inventory through a separate dashboard.
- Sign up, log in, and manage sessions
- Browse products and view details
- Add to cart, update quantity, and remove items
- Checkout with form validation
- Access
AdminPanel.jsp - View all products
- Add/edit/delete products (CRUD)
- Role-based access control
- Java EE (Servlets + JSP)
- JDBC for database interaction
- HTML/CSS for UI
- H2 Database (H2 Database)
- Git & GitHub for version control
- β Encapsulation: Private fields with public getters/setters
- β
Inheritance:
Userinherits fromPerson - β
Interface implementation:
User implements IUser,Product implements IProduct - β Polymorphism: Interfaces used for flexibility
- β Exception Handling: Input validation and DB error handling
src/
βββ controller/ // Servlets (e.g., LoginServlet, RegisterServlet)
βββ dao/ // Database access logic
βββ model/ // POJOs: User, Product, CartItem, + interfaces
βββ views/ // JSP pages: index.jsp, product.jsp, cart.jsp
βββ utils/ // DBConnection.java
-
Clone the repository
git clone https://github.com/yourusername/shopeasy.git -
Import the project in IntelliJ (Java + Maven/EE)
-
Configure your database connection in
DBConnection.java -
Run on a servlet container (e.g., Apache Tomcat)
-
Access the app on
http://localhost:8080/ShopEasy
"This project helped me understand how to design and build an end-to-end application using Java EE. I strengthened my understanding of Servlets, MVC architecture, JDBC integration, form validation, and Git workflows. It was a great opportunity to apply object-oriented programming concepts in a real-world context."
This project follows the structure outlined in the final evaluation for 420-PA3-AS. The frontend is built with JSP/CSS, backend with Java Servlets and JDBC, and deployed via Apache Tomcat.
| Task Name | Category | Description | Assigned To |
|---|---|---|---|
| Setup Project Structure | Core | Initialize folders: model, dao, servlet, WEB-INF | Negar |
| Create Database Schema | Core | Design tables: products, users, orders, cart_items | Betty |
| Configure DB Connection | Core | Create DB connection utility and test it | Betty |
| Product Entity & DAO | Core | Create Product class and CRUD | Betty |
| User Entity & DAO | Core | Implement User class, login, and registration | Negar |
| Order Entity & DAO | Core | Handle order storage and retrieval | Naomi |
| Basic UI Layout (JSP) | UI | Create index.jsp and layout templates with CSS |
Negar |
| Product Listing Page | User | List products using Servlet + JSTL | Negar, Naomi |
| Product Details Page | User | View detailed info when clicking product | Betty |
| Cart Page | User | Add/view/remove items using session tracking | Naomi |
| Checkout Page | User | Capture user info and process order | Naomi |
| Admin Panel (JSP) | Admin | Add/edit/delete products | Betty |
| Error Handling | Core | Implement try/catch and user error messages | All team |
| JavaDoc Documentation | Documentation | Add JavaDoc to all classes and methods | All team |
| GitHub Repo Setup | Version Control | Initialize and push initial project | Negar |
| Branching for Team | Version Control | Create branches per developer | All team |
| Final UI Styling | UI | Polish layout and make responsive | Negar |
| User Manual | Documentation | Write brief usage guide in README.md |
Negar |
| Team Reflection | Professional | Prepare final 500-word team reflection | All team |
| Presentation Prep | Professional | Build final demo and slides | All team |
| Create Base Class | OOP | Inherit User/Admin from Person |
Betty |
| Implement Interfaces | OOP | Implement IUser, IProduct (or Payable, etc.) |
Negar |
Negar Pirasteh
College: LaSalle College | Program: Computer Science Technology
GitHub: @negarprh
Betty Dang
College: LaSalle College | Program: Computer Science Technology
GitHub: @BettyDang
Naomi (Ngoc Yen Nhi) Pham
College: LaSalle College | Program: Computer Science Technology
GitHub: @Naomiphamm
This project is for educational purposes under the LaSalle College Winter 2025 Java OOP course.



