Веб-приложение на Spring Boot с REST API для управления пользователями, контактами, валютой, локациями и картами.
- Java 17
- Spring Boot 3.5.3
- Spring Security с JWT аутентификацией
- Spring Data JPA для работы с базой данных
- PostgreSQL - основная база данных
- H2 - база данных для тестов
- Docker & Docker Compose для контейнеризации
- Swagger/OpenAPI для документации API
- Lombok для уменьшения boilerplate кода
- Bucket4j для rate limiting
- Spring Mail для отправки email
- Регистрация пользователей
- Вход в систему с JWT токенами
- Получение профиля пользователя
- CRUD операции с контактами
- Работа с валютными курсами
- Конвертация валют
- Управление географическими данными
- Работа с координатами
- Интеграция с Яндекс Картами
- Управление маркерами на карте
- Java 17 или выше
- Docker и Docker Compose
- Gradle (или используйте gradlew wrapper)
- Клонируйте репозиторий:
git clone <repository-url>
cd tz- Запустите приложение с помощью Docker Compose:
docker-compose up -dПриложение будет доступно по адресу: http://localhost:8080
- Установите PostgreSQL и создайте базу данных:
CREATE DATABASE tz_db;
CREATE USER tz_user WITH PASSWORD 'tz_password';
GRANT ALL PRIVILEGES ON DATABASE tz_db TO tz_user;- Запустите приложение:
./gradlew bootRun./gradlew testПосле запуска приложения, Swagger UI доступен по адресу:
OpenAPI спецификация:
# База данных
spring.datasource.url=jdbc:postgresql://localhost:5432/tz_db
spring.datasource.username=tz_user
spring.datasource.password=tz_password
# JWT
app.jwt.secret=your-secret-key
app.jwt.expiration-ms=3600000
# CORS
spring.web.cors.allowed-origins=http://localhost:3000- dev - для разработки
- test - для тестирования
- prod - для продакшена
src/main/java/org/example/tz/
├── config/ # Конфигурации
├── controller/ # REST контроллеры
├── dto/ # Data Transfer Objects
├── exception/ # Обработка исключений
├── model/ # Модели данных
├── repository/ # Репозитории JPA
├── security/ # Конфигурация безопасности
├── service/ # Бизнес-логика
└── util/ # Утилиты
- JWT токены для аутентификации
- Spring Security для авторизации
- Rate limiting с Bucket4j
- CORS настройки
- Валидация входных данных
Spring Boot Actuator включен для мониторинга:
docker build -t tz-app .docker run -p 8080:8080 tz-app