A full-stack web application for managing chocolate factory operations, featuring online shopping, factory management, user roles, and interactive features. Built with Vue.js frontend and Java REST backend, this project provides a complete e-commerce solution for chocolate factories.
- Browse Factories - View and search chocolate factories with filters
- Shopping Cart - Add chocolates to cart and manage quantities
- Purchase System - Complete orders with loyalty points
- Customer Types - Bronze, Silver, Gold tiers with benefits and discounts
- Comment & Rating - Review factories and rate chocolates
- Purchase History - Track all past orders
- Interactive Map - View factory locations on an integrated map
- Profile Management - Edit personal information and change password
- Factory Management - Create and edit factory details
- Chocolate CRUD - Add, edit, delete chocolate products
- Worker Management - Register and manage factory workers
- Inventory Control - Manage stock quantities and product availability
- Order Processing - Accept, reject, or cancel customer orders
- Comment Moderation - Approve or reject factory comments
- Order Management - View and update order statuses
- Delivery Tracking - Mark orders as in transport or delivered
- Factory View - Access factory and chocolate information
- User Management - View, block, unblock users
- Factory Oversight - Monitor all factories in the system
- User Registration - Create new manager accounts
- Comment Management - Moderate user reviews
- Search & Filter - Advanced search by name, location, rating, chocolate type
- Sorting - Sort factories by name, location, or rating
- Authentication - Secure login system with role-based access
- CORS Support - Configured for cross-origin requests
- Vue.js 3 - Progressive JavaScript framework
- Vue Router - Client-side routing
- Vuex - State management
- Axios - HTTP client for API requests
- OpenLayers - Interactive maps integration
- SCSS/Sass - CSS preprocessor
- Java - Programming language
- JAX-RS - RESTful web services
- Apache Tomcat 9.0 - Application server
- Jersey - JAX-RS implementation
- CSV Storage - File-based data persistence
- Java Servlets - HTTP request handling
- Annotations - @Path, @GET, @POST, @PUT, @DELETE
Frontend:
- Node.js 14+ and npm
- Modern web browser
Backend:
- Java JDK 8 or higher
- Apache Tomcat 9.0
- Eclipse or IntelliJ IDEA (recommended)
-
Import the project
# Open Eclipse/IntelliJ # Import existing Maven project or Java project # Navigate to: web-e2-project/ChocolateFactoryWebProject/Backend/WebShopAppREST
-
Configure Tomcat
- Add Apache Tomcat 9.0 server to your IDE
- Deploy the WebShopAppREST project to Tomcat
- Ensure server runs on
http://localhost:8080
-
Start the backend
- Start Tomcat server from IDE
- Verify REST API is accessible at:
http://localhost:8080/WebShopAppREST/rest/
-
Navigate to frontend directory
cd web-e2-project/ChocolateFactoryWebProject/Frontend -
Install dependencies
npm install
-
Run development server
npm run serve
-
Access the application
- Open browser to:
http://localhost:3000
- Open browser to:
npm run build| Feature | Customer | Worker | Manager | Admin |
|---|---|---|---|---|
| Browse Factories | ✅ | ✅ | ✅ | ✅ |
| Purchase Chocolates | ✅ | ❌ | ❌ | ❌ |
| Manage Cart | ✅ | ❌ | ❌ | ❌ |
| Rate & Comment | ✅ | ❌ | ❌ | ❌ |
| Process Orders | ❌ | ✅ | ✅ | ❌ |
| Manage Chocolates | ❌ | ❌ | ✅ | ❌ |
| Manage Factory | ❌ | ❌ | ✅ | ❌ |
| Register Workers | ❌ | ❌ | ✅ | ❌ |
| Block Users | ❌ | ❌ | ❌ | ✅ |
| Register Managers | ❌ | ❌ | ❌ | ✅ |
- User - Customer, Worker, Manager, Administrator
- Factory - Chocolate factory with location and products
- Chocolate - Product with price, type, weight, description
- Cart - Shopping cart with chocolates
- Purchase - Order history with status
- Comment - Factory reviews and ratings
- CustomerType - Bronze/Silver/Gold tiers with discounts
- Location - Geographic coordinates for factories
- GENDER - MALE, FEMALE
- ChocolateStatus - Available, Unavailable
- PurchaseStatus - Pending, Approved, Rejected, Delivered
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Project: Web Programming Course Project
Institution: Faculty of Technical Sciences, University of Novi Sad
Course: Web Programming (e2 group)
This is an academic project. For questions or contributions, please open an issue.
- Authors:
Duško Pilipović
Ognjen Papović - GitHub: @pili01
- Faculty of Technical Sciences, University of Novi Sad
- Web Programming Course Instructors
- Vue.js and Java communities
Note: This project was developed as part of academic coursework and uses CSV files for data persistence. For production use, consider implementing a proper database solution and enhancing security measures.