Skip to content

Enterprise-level TravelTech backend platform built with Java 21 / Spring Boot 3 / PostgreSQL 14 / Kubernetes. Demonstrates architecture, reliability, and scalability at the level of a commercial product: modular microservices, secure data processing (FZ-152 / PCI DSS), CI/CD pipelines, and OpenAPI 3 documentation

License

Notifications You must be signed in to change notification settings

shuldeshoff/travelmaster-platform

Repository files navigation

TravelMaster Platform

Java Spring Boot License

📝 Описание

TravelMaster — современная микросервисная платформа для бронирования и управления путешествиями.

Проект демонстрирует промышленную архитектуру enterprise-уровня с использованием:

  • ☕ Java 21 / Spring Boot 3
  • 🏗️ Микросервисная архитектура
  • 🔐 Безопасность и соответствие ФЗ-152
  • ☁️ Cloud-native подход с Kubernetes
  • 🚀 CI/CD автоматизация

🎯 Ключевые возможности

  • Управление пользователями — регистрация, аутентификация, OAuth 2.0
  • ✈️ Поиск и бронирование — интеграция с внешними провайдерами (Amadeus, Booking)
  • 💳 Платежи — безопасная обработка с соответствием PCI DSS
  • 📧 Уведомления — email, SMS, push через Kafka
  • 📊 Аналитика — агрегация данных по бронированиям и доходам

🏗️ Архитектура

Система состоит из 7 микросервисов:

┌─────────────────┐
│  Gateway Service │ ← Единая точка входа, JWT auth
└────────┬────────┘
         │
    ┌────┴────┬────────┬──────────┬───────────┬─────────────┐
    │         │        │          │           │             │
┌───▼──┐  ┌──▼───┐  ┌─▼────┐  ┌──▼──────┐  ┌─▼───────┐  ┌─▼─────────┐
│ User │  │ Trip │  │Booking│  │ Payment │  │Notification│ │ Analytics │
└──────┘  └──────┘  └───────┘  └─────────┘  └──────────┘  └───────────┘

🛠️ Технологический стек

Backend

  • Java 21 — современный LTS релиз
  • Spring Boot 3.x — фреймворк для микросервисов
  • Spring Cloud Gateway — API Gateway
  • Spring Security — аутентификация и авторизация
  • Spring Data JPA / Hibernate — ORM
  • MapStruct — маппинг DTO
  • Lombok — уменьшение boilerplate кода

Базы данных

  • PostgreSQL 14 — основная СУБД
  • Redis — кеширование и rate limiting
  • Flyway — миграции БД

Messaging & Events

  • Apache Kafka — event streaming

Infrastructure & DevOps

  • Docker / Docker Compose — контейнеризация
  • Kubernetes — оркестрация
  • Helm — управление K8s манифестами
  • GitHub Actions — CI/CD

Monitoring & Observability

  • Prometheus — сбор метрик
  • Grafana — визуализация
  • Spring Actuator — health checks и metrics
  • Micrometer — distributed tracing

Testing

  • JUnit 5 — unit тесты
  • Testcontainers — integration тесты
  • Spring Boot Test — тестирование Spring приложений

🚀 Быстрый старт

Предварительные требования

  • Java 21+
  • Maven 3.8+ или Gradle 8+
  • Docker & Docker Compose
  • (опционально) Kubernetes cluster

Локальный запуск

  1. Клонируйте репозиторий:
git clone https://github.com/shuldeshoff/travelmaster-platform.git
cd travelmaster-platform
  1. Запустите инфраструктуру через Docker Compose:
docker-compose up -d

Это запустит:

  • PostgreSQL (порт 5432)
  • Redis (порт 6379)
  • Kafka + Zookeeper (порт 9092)
  • pgAdmin (порт 5050)
  1. Соберите проект:
./mvnw clean install
  1. Запустите сервисы:
# Gateway Service
cd gateway-service && ./mvnw spring-boot:run

# User Service
cd user-service && ./mvnw spring-boot:run

# Другие сервисы аналогично...
  1. Проверьте работоспособность:
curl http://localhost:8080/actuator/health

Доступ к сервисам

📚 Документация

Подробная документация доступна в папке /docs:

🧪 Тестирование

# Unit тесты
./mvnw test

# Integration тесты
./mvnw verify

# Coverage report
./mvnw jacoco:report

🐳 Docker

Сборка образов

# Сборка всех сервисов
./mvnw spring-boot:build-image

# Или через Docker
docker build -t travelmaster/gateway-service:latest ./gateway-service

Запуск через Docker Compose

docker-compose up -d

☸️ Kubernetes

Деплой через kubectl

kubectl apply -f k8s/

Деплой через Helm

helm install travelmaster ./helm/travelmaster -f helm/travelmaster/values-prod.yaml

🔐 Безопасность

Проект реализует следующие меры безопасности:

  • ✅ JWT аутентификация
  • ✅ OAuth 2.0 / OpenID Connect
  • ✅ RBAC (Role-Based Access Control)
  • ✅ Rate limiting
  • ✅ HTTPS/TLS шифрование
  • ✅ Защита от OWASP Top 10
  • ✅ PCI DSS compliance для платежей
  • ✅ ФЗ-152 соответствие для персональных данных
  • ✅ Audit logging

📊 Мониторинг

Мониторинг осуществляется через:

  • Spring Actuator — health checks
  • Prometheus — сбор метрик
  • Grafana — дашборды
  • Micrometer — distributed tracing

🤝 Участие в разработке

  1. Fork проекта
  2. Создайте feature branch (git checkout -b feature/AmazingFeature)
  3. Commit изменения (git commit -m 'Add some AmazingFeature')
  4. Push в branch (git push origin feature/AmazingFeature)
  5. Откройте Pull Request

Подробнее см. TEAM_GUIDE.md

📋 TODO / Roadmap

Фаза 0: Инфраструктура ✅

  • Базовая структура проекта
  • План реализации
  • Docker Compose setup
  • Kubernetes манифесты и Helm charts
  • CI/CD pipeline (GitHub Actions)
  • Документация

Фаза 1: Базовые сервисы ✅

  • Common Library (DTO, exceptions, utilities)
  • Gateway Service
    • Spring Cloud Gateway routing
    • JWT authentication filter
    • Rate limiting с Redis
    • CORS configuration
    • Global exception handler
  • User Service
    • User & Role entities + repositories
    • Flyway database migrations
    • JWT token generation
    • Registration & Login
    • RBAC (TRAVELER, AGENT, ADMIN)
    • Unit & Integration tests
  • Dockerfiles для сервисов

Фаза 2: Бизнес-логика ⏳

  • Trip Service (поиск и управление поездками)
  • Booking Service (бронирования + Saga Pattern)
  • Payment Service (платежи + PCI DSS)
  • Notification Service (email/SMS/push)
  • Analytics Service (статистика и отчёты)

Подробный roadmap: IMPLEMENTATION_PLAN.md

📄 Лицензия

Этот проект лицензирован под MIT License - см. файл LICENSE для деталей.

👤 Автор

Tech Lead / Solution Architect

🙏 Благодарности

Проект создан как демонстрация современных практик разработки enterprise-приложений с использованием Java и Spring Boot.


Если проект был полезен, поставьте звезду!

About

Enterprise-level TravelTech backend platform built with Java 21 / Spring Boot 3 / PostgreSQL 14 / Kubernetes. Demonstrates architecture, reliability, and scalability at the level of a commercial product: modular microservices, secure data processing (FZ-152 / PCI DSS), CI/CD pipelines, and OpenAPI 3 documentation

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published