A robust and scalable microservices-based backend system powering the Outdoor Adventures Platform. This architecture supports a full suite of services such as camping reservations, event participation, transport bookings, training programs, user engagement forums, and a marketplace for outdoor gear.
- 🏗 System Architecture
- 🧩 Microservices Overview
- 💻 Technologies Used
- ✨ Core Features
- 🛠 Installation and Setup
- 📚 API Documentation
- 📄 License
The system adheres to a modern microservices architecture and includes:
- Service Registry (Eureka Server) – Manages service discovery and registration.
- RESTful APIs – Each microservice provides dedicated endpoints.
- Database per Service – Promotes decoupling and data encapsulation.
- External Integrations – Incorporates AI/NLP features through Hugging Face and Perspective API.
The platform consists of the following independently deployed services:
- Camping-Service – Manages campsites, accommodation, inventory, and bookings.
- Event-Service – Event creation and discovery with smart content enhancement via NLP.
- Formation-Service – Training course management and progress tracking.
- Forum-Service – Community interactions with automated moderation and AI-powered features.
- MarketPlace-Service – Online shopping for camping gear with payment processing and invoicing.
- Transport-Service – Vehicle listings, rentals, and reservations.
- User-Service – Authentication, role-based authorization, messaging, and analytics.
- Java 17
- Spring Boot
- Spring Cloud (Eureka, Config)
- Netflix Eureka
- Spring Data JPA
- MySQL
- Swagger/OpenAPI – For interactive API documentation
- Maven – Build and dependency management
- Docker & Docker Compose – Containerization (optional deployment)
- Cloudinary – Media file storage and retrieval
- Hugging Face – Sentiment analysis and AI-generated text
- Perspective API – Toxicity and content moderation
- Manage camping sites and lodging
- Book equipment and locations
- Analyze reviews with sentiment scores
- Display geolocations on maps
- AI-enhanced event descriptions
- Keyword extraction and tagging
- Event calendar and management dashboard
- Full-fledged discussion threads
- AI-generated replies and moderation
- Multi-language post translation
- Course management and enrollment
- Learning materials distribution
- Progress analytics
- Product listings with photos and prices
- Shopping cart and order tracking
- PDF invoice generation
- Customer review system
- Vehicle rental interface
- Route and reservation planning
- Review system for feedback
- Secure registration and login
- JWT-based authentication
- Real-time messaging and notifications
- Admin roles and statistics dashboard
- JDK 17+
- Maven 3.8+
- MySQL 8.0+
- (Optional) Docker & Docker Compose
- Clone the project
git clone https://github.com/Louaysaad30/Outdoors-SpringBoot-MicroService.git-
Prepare MySQL databases
- Create separate schemas for each microservice
- Update each service’s
application.propertieswith credentials
-
Start Eureka Server
cd Eureka-Server
mvn spring-boot:run- Run individual services
cd Camping-Service
mvn spring-boot:run
# Repeat for each serviceSwagger documentation available at:
- Camping Service: http://localhost:9092/swagger-ui.html
- Event Service: http://localhost:9095/swagger-ui.html
- Forum Service: http://localhost:9090/swagger-ui.html
- MarketPlace Service: http://localhost:9091/swagger-ui.html
- Transport Service: http://localhost:9093/swagger-ui.html
- User Service: http://localhost:9098/swagger-ui.html
Licensed under the MIT License. See the LICENSE file for more details.