Создать гибкое и масштабируемое backend-решение для образовательной платформы, основанной на микросервисной архитектуре. Проект должен демонстрировать способность команды быстро развернуть продакшен-подобную инфраструктуру в условиях хакатона.
- Java 21
- Spring Boot / Spring Cloud (Eureka, Gateway, Feign)
- PostgreSQL
- Docker & Docker Compose
- HTML CSS JS
Модульная микросервисная архитектура - независимые сервисы (Auth, Course, Gateway, Registry) позволяют развивать продукт быстро и безопасно.
- Масштабируемость - каждый сервис можно развивать отдельно
- Надёжность - Kafka как шина событий
- Упрощённый запуск - Docker Compose поднимает всю инфраструктуру
- Готовность к продакшену - сервис-дискавери, API Gateway, разделённые БД
- Склонировать репозиторий
git clone git@github.com:Limbusnoe-Student-Society/HackAndChange-Backend.git
cd HackAndChange-Backend- Создать файл .env
DB_USERNAME=app_user
DB_PASSWORD=admin
SECURITY_JWT_SECRET=change-me
SECURITY_JWT_EXPIRATION=3600000
S3_KEY=key
S3_SECRET=secret
S3_REGION=ru-central1
S3_ENDPOINT=https://storage.yandexcloud.net
S3_BUCKET=bucket- Запустить инфраструктуру
docker compose -p hackandchange-backend up -d- Собрать jar и образы:
./gradlew buildRelease- Поднять весь стек:
docker compose up --buildАналоги: монолитные приложения, REST-сервисы без сервис-дискавери, решения без брокеров сообщений.
Почему наш подход лучше:
- Микросервисы легко расширить
- Простая контейнеризация
- Подходит для масштабирования и командной разработки
- CI/CD (GitHub Actions)
- Мониторинг (Prometheus + Grafana)
- Централизованные логи (ELK)
{
"title": title,
"description": description,
"modules": [
{
"title": title,
"order": 1,
"lessons": [
{
"title": title,
"order": 1,
"pages": [
{
"type": "TEXT", // или "VIDEO", "QUIZ"
"title": title,
"content": contentText,
"videoUrl": null,
"order": 1,
}
]
}
]
}
]
}Если нашли баг или хотите предложить улучшение - создайте issue в репозитории. Описывайте проблему кратко и по существу, добавляйте шаги воспроизведения и логи при необходимости.
- Марыняко Владислав - BackEnd, Team Leader
- Крайнов Кирилл - Documentation, System Analytics, QA-engineer
- Тесленко Тимофей - FrontEnd
- Сиротина Мария - FrontEnd, UX/UI design