Для начала работы нужно склонировать проект:
git clone https://github.com/NKulbaka1/BusHunter.gitПриложение работает в докере, поэтому для запуска достаточно одной команды:
docker compose up --buildПосле запуска описание API можно найти в Swagger. Оттуда же можно поделать запросы.
При запуске приложения накатывается миграция, наполняющая БД тестовыми данными.
-
Аутентификация и авторизация пользователей через JWT токены (access + refresh)
-
Для клиентов: поиск доступных билетов по фильтрам, выкуп билетов, просмотр перевозчиков и маршрутов.
-
Для админов: те же возможности, что у клиентов + операции создания, редактирования и удаления для сущностей (билеты, маршруты, перевозчики).
-
Купленные билеты кэшируются для каждого пользователя в БД Redis. При запросе билетов пользователя, данные достаются из кэша. При обновлении билетов пользователя, данные в Redis обновляются.
-
Создан отдельный микросервис, который принимает данные о купленных билетах из топика Kafka и сохраняет их в свою БД. При покупке билета в основном микросервисе данные билета дополнительно отправляются в этот топик Kafka.
- Java
- Spring
- JDBC
- Kafka
- Redis
- PostgreSQL
- LiquiBase
- Gradle
- Lombok
- Swagger/OpenAPI
- JsonWebtoken