system_of_crush

module
v0.0.0-...-e88a4fe Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2025 License: MIT

README

system of crush

О проекте

REST API для эффективной работы аварийных служб в сфере водоснабжения и водоотведения.

Оператор в веб-клиенте оформляет обращения жителей и создаёт заявки на ремонт, указывая необходимость отключения воды и все данные для устранения аварии.

Бригадиры в мобильном приложении выбирают задачи, видят адреса и точные данные о материалах. Они фиксируют начало и завершение работ. После выполнения заявок оператор просматривает общую статистику по работе бригад и устраненным авариям.

Администратор управляет сотрудниками и их ролями в системе.

Функционал

Основные функции веб-приложения:

  • Сбор обращений от населения.
  • Составление заявок на ремонт аварии.
  • Фиксация отключения воды.
  • Просмотр подробной статистики о работе бригад и оператора.
  • Управление пользователями системы.

Основные функции мобильного приложения:

  • Выбор заявок на ремонт.
  • Просмотр необходимых для работ данных.
  • Фиксация начала и завершения работ.

Технический функционал(для фронтенда):

  • Swagger документация по всем эндпоинтам и моделям
  • Возращение статус-кодов(200, 201, 404, 401, 500)
  • JWT Аутентификация

Технологии

Список технологий используемых в проекте

  • Язык программирования: Go
  • Маршрутизация: Gin
  • Логгирование: log
  • Взаимодействие с БД: pgxpool
  • Хэширование паролей: bcrypt
  • JWT: jwt
  • База данных: PostgreSQL
  • Документация: Swagger
  • Контейнеризация: Docker

Архитектура

Основная логика
flowchart TB
    Client["Front-end"] --> API["Transport REST API"]
    API --> JWT["JWT Аутентификация"]
    JWT --> Service["Бизнес-логика"]
    Service --> DatabaseLayer["Взаимодействие с БД"]
    DatabaseLayer --> DB["PostgreSQL"]
    API --> Swagger["Swagger UI"]
Инфраструктура
flowchart LR
    Docker["Docker"] --> GoApp["Go-приложение"]
    Docker --> Swagger["Swagger UI"]
    Docker --> DB["PostgreSQL"]
Структура проекта

Структура проекта

База данных

ER-diagram

Установка и запуск

1. Клонировать репозиторий
git clone https://github.com/Flectere/system_of_crush
cd system_of_crush
2. Настройка .env и конфига
  • Создайте .env файл в корне проекта по шаблону .env.example
  • Измените параметры local_config.json(опционально)
3. Запуск через docker-compose
docker compose up

Использование

Swagger

Для того чтобы перейти на веб-страницу с документацией введите в адресной строке: http://localhost:8080/docs. Там вы сможете просмотреть все эндпоинты, модели запросов и ответов, а так же протестировать работу запросов.

Примеры эндпоинтов
  • GET /appeals — получить список обращений.
  • POST /appeals — создать новое обращение.
  • GET /mobile/application/brigadir/{id_brigadir} — список присвоенных заявок для бригадира.
  • PATCH /mobile/{id}/start-application — зафиксировать начало работы.
  • GET /statistics/brigades — получить статистику по работе бригад.
Аутентификация
  • Вход через эндпоинт POST /auth/login
  • JWT токен передаётся в заголовке Authorization: Bearer <token>
Роли
  • Оператор — веб-клиент, создание заявок и просмотр статистики
  • Бригадир — мобильное приложение, выбор и выполнение задач
  • Администратор — веб-клиент, управление сотрудниками и ролями

Directories

Path Synopsis
internal
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL