Reportify — веб-приложение для удобного создания аналитических табличных и графических отчётов без необходимости вручную писать SQL-запросы для получения данных из базы.
Проект разработан как pet-project / academic project и предназначен для демонстрации архитектурных и инженерных решений. В промышленной эксплуатации не используется.
В данный момент введется разработка проекта "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, endpointsservice— бизнес-логикаrepository— доступ к данным и SQLdto / webdto— структуры передачи данныхsecure— хеширование, токены, безопасностьconfig— конфигурация и валидация envcache— кэш и метаданные
- 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)