Skip to content

Backend server repository for the “Internet Provider” project

License

Notifications You must be signed in to change notification settings

Pavelgrr7/Internet-Provider

Repository files navigation

🌐 Internet Provider Management System (Backend)

Java Spring Boot Docker PostgreSQL License

Бэкенд-часть информационной системы для автоматизации работы интернет-провайдера. Предоставляет 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 установленные на вашей машине.

Инструкция

  1. Клонируйте репозиторий:

    git clone https://github.com/Pavelgrr7/Internet-Provider.git
    cd Internet-Provider
  2. Запустите приложение: Docker сам соберет проект (используя multi-stage build) и поднимет базу данных.

    docker-compose up -d
  3. Готово! Приложение запустится через минуту (время на сборку и старт БД).

🔗 Полезные ссылки после запуска

  • 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

About

Backend server repository for the “Internet Provider” project

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published