This project is a full-stack system for managing customers, vendors, items, shopping carts, notifications, and events. It provides a React-based frontend with TypeScript and Tailwind CSS, and a backend powered by Java, Spring Boot, and Hibernate. The system is hosted on Vercel (frontend) and Render (backend).
- User Authentication: Register, login, and logout for customers and vendors.
- Customer Management: Manage customer profiles and balance.
- Vendor Management: Manage vendor profiles and inventory.
- Item Management: CRUD operations for items and vendor items.
- Shopping Cart: Add, remove, and checkout items in a cart using the Command pattern.
- Notification System: Subscribe/unsubscribe and receive notifications about item availability and discounts using the Observer pattern.
- Event System: Trigger special events like discounts, gifts, and bonuses.
- React with TypeScript for building a responsive and interactive user interface.
- Tailwind CSS for styling.
- Hosted on Vercel.
- Spring Boot with Hibernate for RESTful API development.
- Hosted on Render.
- REST API
- Maven for dependency management.
- Session-based authentication using Jakarta Servlet.
- Create a
.envfile with database credentials:DB_HOST=localhost DB_PORT=5432 DB_NAME=your_database_name DB_USER=your_database_user DB_PASSWORD=your_database_password
- Build and run the Docker container:
docker build -t christmas-market-backend . docker run --env-file .env -p 8080:8080 christmas-market-backend
- Ensure PostgreSQL is running and configured as per application.properties.
- Build and run:
./gradlew clean build java -jar build/libs/app.jar
- Navigate to the frontend directory:
cd frontend/christmas-market-website - Install dependencies:
npm install - Start the development server:
npm run dev
- Backend APIs are accessible at http://localhost:8080.
- Frontend runs at http://localhost:5173.