Skip to content

ummuys/reportify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

131 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reportify

Reportify — веб-приложение для удобного создания аналитических табличных и графических отчётов без необходимости вручную писать SQL-запросы для получения данных из базы.

Проект разработан как pet-project / academic project и предназначен для демонстрации архитектурных и инженерных решений. В промышленной эксплуатации не используется.


Reportify-plus

В данный момент введется разработка проекта "Reportify-plus". Мы решили разбить проект на микросервисную архитектуру с добавлением брокера сообщений Kafka для повышения отказоустойчивости.

Проект уже имеет первые бета версии, но все еще находится в стадии разработки, в частности фронтенда.


Назначение продукта

Reportify ориентирован на пользователей, которым необходимо:

  • формировать аналитические отчёты без знания SQL;
  • визуализировать данные в виде таблиц и графиков;
  • управлять доступом пользователей и ролями;
  • работать с отчётами через web-интерфейс.

Кратко о проекте

  • Backend: Go
  • Frontend: Vanilla JS + HTML/CSS
  • DB: PostgreSQL, Redis
  • Infra: Docker, Docker Compose, Nginx
  • Архитектура: layered architecture (web → service → repository)
  • Статус: завершён, не в промышленной эксплуатации

Безопасность

  • Хэширование паролей через BCrypt
  • Token-based аутентификация
  • Конфигурируемое время жизни токенов
  • Middleware для авторизации и логирования
  • Автоматическая ротация секретов при перезапуске

Инфраструктура

  • Полная контейнеризация
  • Nginx как reverse proxy + static
  • Makefile для локального запуска
  • .env-конфигурация с валидацией

Возможности

  • Конструктор аналитических отчётов без ручного SQL
  • Табличные отчёты
  • Графики:
    • столбчатые (bar)
    • линейные (line)
    • круговые (pie)
  • Аутентификация и авторизация пользователей
  • Гибкая система ролей и прав доступа
  • История и переиспользование отчётов
  • Web-интерфейс без frontend-фреймворков
  • REST API
  • Полная контейнеризация через Docker

Архитектура проекта

Проект построен по слоистой архитектуре с явным разделением ответственности:

  • cmd/ — точка входа в приложение
  • internal/
    • web — HTTP-сервер, middleware, endpoints
    • service — бизнес-логика
    • repository — доступ к данным и SQL
    • dto / webdto — структуры передачи данных
    • secure — хеширование, токены, безопасность
    • config — конфигурация и валидация env
    • cache — кэш и метаданные
  • docker/ — окружение, nginx, compose, миграции
  • nginx — статические страницы и reverse proxy
  • migrations — SQL-миграции схем и таблиц

Быстрый запуск

cd reportify/docker
make up

Приложение будет доступно на http://localhost:8088


Лицензия

Код доступен только для просмотра и личного изучения.


Авторы

Backend Go developer - Евгений Егоров (https://github.com/ummuys)

Frontend developer - Никита Сорокин (https://github.com/nikitasoro-kin)

Frontend developer - Никита Сабиров (https://github.com/Ares-13)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors