Бэкенд-часть информационной системы для автоматизации работы интернет-провайдера. Предоставляет RESTful API для управления абонентами, тарифами, договорами и услугами, а также личный кабинет пользователя.
Проект разработан с акцентом на чистую архитектуру, безопасность и масштабируемость.
-
🔐 Безопасность и Аутентификация:
- Полная защита API с использованием Spring Security.
- Аутентификация на основе JWT (JSON Web Tokens).
- Ролевая модель доступа: Администратор (полный доступ) и Абонент (доступ к личному кабинету).
- Хэширование паролей (BCrypt).
-
💼 Управление абонентами и договорами:
- Создание и ведение базы абонентов ("Карточка клиента").
- Заключение и расторжение договоров.
- Умный расчет стоимости: Автоматический пересчет ежемесячного платежа при смене тарифа или подключении/отключении доп. услуг.
-
📊 Тарифная сетка и Услуги:
- Гибкое управление тарифами и дополнительными услугами.
- Проверка совместимости услуг при смене тарифа.
-
📈 Аналитика:
- Генерация отчетов по эффективности тарифов (кол-во абонентов, прибыль, статистика).
- Язык: Java 17
- Фреймворк: Spring Boot 3 (Web, Data JPA, Security, Validation)
- База данных: PostgreSQL
- Сборка: Gradle
- Контейнеризация: Docker, Docker Compose
- Документация: OpenAPI 3.0 (Swagger UI)
- Docker и Docker Compose установленные на вашей машине.
-
Клонируйте репозиторий:
git clone https://github.com/Pavelgrr7/Internet-Provider.git cd Internet-Provider -
Запустите приложение: Docker сам соберет проект (используя multi-stage build) и поднимет базу данных.
docker-compose up -d
-
Готово! Приложение запустится через минуту (время на сборку и старт БД).
- API Base URL:
http://localhost:8080/api - Swagger документация (UI):
http://localhost:8080/swagger-ui.html- Здесь можно посмотреть все эндпоинты и протестировать их прямо в браузере.
Проект построен по классической многослойной архитектуре:
controller— REST-контроллеры (обработка HTTP-запросов).service— Бизнес-логика приложения.repository— Взаимодействие с БД (Spring Data JPA).model— JPA-сущности.dto— Объекты передачи данных (Data Transfer Objects).config— Конфигурация безопасности (SecurityConfig) и CORS.
Pavel Ryzhenkov
- GitHub: @Pavergrr7
- Email: pavelgrr7@hotmail.com