A scalable and secure backend solution for hotel booking and management, built using Spring Boot, integrated with Stripe for payments, and containerized with Docker for easy deployment. The application is hosted on Render and supports robust admin and user functionalities.
🔗 Live API: https://hotelbooking-service.onrender.com/api/v1/
📦 Docker Image: soumyajit2005/hotelbooking-service:v0.0.1
- 🔐 User Authentication & OTP Email Verification
- 🛏️ Hotel Room & Inventory Management
- 📅 Booking System: Create, update, cancel bookings
- 📈 Dynamic Pricing Strategy
- 💰 Minimum Price Display Per Hotel
- 👥 Guest Management for group travel
- 💳 Stripe Payment Integration
- 👤 Role-Based Access Control (RBAC)
- 🖥️ Admin Panel Functions
- 📊 Report Generation
Layer | Technology |
---|---|
Backend | Spring Boot, Spring MVC, Spring Security |
Database | PostgreSQL |
ORM | Hibernate (JPA) |
Authentication | JWT, Email OTP |
Payment | Stripe API |
Deployment | Docker, Render |
API Docs | Postman / Swagger |
src/
├── main/
│ ├── java/com/soumyajit/HotelBooking/
│ │ ├── Advices/
│ │ ├── config/
│ │ ├── controller/
│ │ ├── dtos/
│ │ ├── EmailService/
│ │ ├── entities/
│ │ ├── Exception/
│ │ ├── repository/
│ │ ├── Security/
│ │ ├── service/
│ │ ├── Strategy/
│ │ └── util/
│ │ └── HotelBookingApplication.java
│ └── resources/
├── test/
├── Dockerfile
└── target/
pull the public image from Docker Hub:
docker pull soumyajit2005/hotelbooking-service:v0.0.1
docker run -p 8000:8000 soumyajit2005/hotelbooking-service:v0.0.1
🌐 Deployment This backend is hosted live on Render using Docker.
📍 API Base URL:
https://hotelbooking-service.onrender.com/api/v1/
🐦 Try Endpoints in Postman: 🔗 with https://hotelbooking-service.onrender.com/api/v1/
🔗 View the full API reference in Postman Collection
git clone https://github.com/leo-soumyajit/HotelBooking-Backend.git
cd HotelBooking-Backend
🛠 Configure Database Connection Edit the application.properties file:
spring.datasource.url=jdbc:postgresql://localhost:5432/<your_db_name>
spring.datasource.username=your_db_username
spring.datasource.password=your_db_password
▶ Run the Application
./mvnw spring-boot:run