Skip to content

pili01/web-e2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chocolate Factory Web Shop 🍫

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.

📋 Features

🛒 Customer Features

  • 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

👔 Manager Features

  • 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

👷 Worker Features

  • Order Management - View and update order statuses
  • Delivery Tracking - Mark orders as in transport or delivered
  • Factory View - Access factory and chocolate information

🔐 Administrator Features

  • 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

🌟 Additional Features

  • 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

🛠 Technologies Used

Frontend

  • 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

Backend

  • 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

🚀 Getting Started

Prerequisites

Frontend:

  • Node.js 14+ and npm
  • Modern web browser

Backend:

  • Java JDK 8 or higher
  • Apache Tomcat 9.0
  • Eclipse or IntelliJ IDEA (recommended)

Installation & Setup

Backend Setup

  1. Import the project

    # Open Eclipse/IntelliJ
    # Import existing Maven project or Java project
    # Navigate to: web-e2-project/ChocolateFactoryWebProject/Backend/WebShopAppREST
  2. Configure Tomcat

    • Add Apache Tomcat 9.0 server to your IDE
    • Deploy the WebShopAppREST project to Tomcat
    • Ensure server runs on http://localhost:8080
  3. Start the backend

    • Start Tomcat server from IDE
    • Verify REST API is accessible at: http://localhost:8080/WebShopAppREST/rest/

Frontend Setup

  1. Navigate to frontend directory

    cd web-e2-project/ChocolateFactoryWebProject/Frontend
  2. Install dependencies

    npm install
  3. Run development server

    npm run serve
  4. Access the application

    • Open browser to: http://localhost:3000

Build for Production

npm run build

🎨 User Roles & Permissions

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

📊 Data Models

Core Entities

  • 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

Enumerations

  • GENDER - MALE, FEMALE
  • ChocolateStatus - Available, Unavailable
  • PurchaseStatus - Pending, Approved, Rejected, Delivered

📄 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

👥 Academic Information

Project: Web Programming Course Project
Institution: Faculty of Technical Sciences, University of Novi Sad
Course: Web Programming (e2 group)

🤝 Contributing

This is an academic project. For questions or contributions, please open an issue.

📧 Contact

  • Authors:
    Duško Pilipović
    Ognjen Papović
  • GitHub: @pili01

🙏 Acknowledgments

  • 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.

About

web app project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published