#🌞 Sunny-Seat-A-Software-System-For-Managing-Beach-Equipment-Reservations
🎥 Watch Demo Video: Click here to view
Sunny Seat is an innovative web application designed to facilitate sunbed reservations on Romanian seaside beaches.
The platform serves both tourists, who can check real-time availability and book sunbeds, and beach administrators, who can manage resources efficiently.
🎯 Project Goal:
✔️ Reduce the time spent searching for available sunbeds
✔️ Provide a modern, user-friendly vacation planning experience
✔️ Digitalize resource management for beach administrators
- ☕ Spring Boot – microservices & REST API
- 🗄️ MySQL – relational database
- 🌐 RESTful API – client-server communication
- 🐘 phpMyAdmin – database management
- 🗺️ Google Maps API – interactive maps
- 🌤️ OpenWeather API – real-time weather & water temperature
- 🤖 Fuse.js – fuzzy search for the virtual assistant
- 💳 Stripe API – secure online payments
✔️ User & Admin Authentication
✔️ Real-time sunbed availability on an interactive map
✔️ Online reservations & payments (full or partial)
✔️ Google reviews & ratings integration
✔️ Virtual Assistant powered by React + Fuse.js
✔️ Beach Management (pricing updates, resource monitoring)
SunnySeat/
├── frontend/ # React.js + Vite + Bootstrap (UI Layer)
│ ├── src/ # Application source code
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Screens (Home, Reservation, Admin Panel)
│ │ ├── services/ # API integration (Axios calls)
│ │ └── assets/ # Images, styles, icons
│ └── public/ # Public assets (index.html, favicon, etc.)
│
├── backend/ # Spring Boot REST API (Business Logic + Security)
│ ├── src/main/java/ # Java source code
│ │ ├── controller/ # API endpoints
│ │ ├── service/ # Business logic layer
│ │ ├── repository/ # JPA repositories (DB interactions)
│ │ └── model/ # Entities & DTOs
│ └── src/main/resources/ # Configurations (application.properties)
│
├── database/ # Database schema and diagrams
│ ├── sunnyseat.sql # Initial schema and seed data
│ └── diagrams/ # ERD diagrams
│
└── README.md # Project documentation
- frontend/ – Contains the React.js+Vite client application (user interface).
- backend/ – Includes the Spring Boot REST API for business logic, authentication, and database communication.
- database/ – Holds MySQL scripts and ER diagrams.
- README.md – Project documentation.
Make sure you have installed:
- Java 17+ (for the Spring Boot backend)
- Node.js 18+ & npm (for the React + Vite frontend)
- MySQL 8+ and phpMyAdmin (for the database)
- Maven (to build and run the backend)
- Git (to clone the repository)
git clone https://github.com/username/SunnySeat.git
cd SunnySeatCreate a .env file (or edit application.properties) and add:
# =====================================
# DATABASE CONFIGURATION
# =====================================
spring.datasource.url=jdbc:mysql://localhost:3306/sunnyseat
spring.datasource.username=root
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
# =====================================
# STRIPE API KEYS
# =====================================
stripe.secret.key=sk_test_yourKeyHere
stripe.public.key=pk_test_yourKeyHere
# =====================================
# EMAIL CONFIGURATION
# =====================================
mail.server.host=smtp.mail.yahoo.com
mail.server.port=587
mail.server.username=your_email@yahoo.com
mail.server.password=your_app_passwordRun the backend server:
mvn spring-boot:runInstall dependencies:
npm installCreate a .env file in the frontend folder and add:
VITE_API_URL=http://localhost:8080/api
VITE_STRIPE_PUBLIC_KEY=pk_test_yourKeyHereRun the frontend development server:
npx vite --port=4000Create the MySQL database:
CREATE DATABASE sunnyseat;Import the initial schema and seed data:
mysql -u root -p sunnyseat < database/sunnyseat.sql