
RTrack: Современная платформа управления проектами
Дата публикации
ℹ️ Что covered в этом посте
Путь создания RTrack — платформы управления проектами на базе Rails 8, сейчас в приватной бете. Мы мигрируем с backend на Go, добавляя комплексные функции, такие как отслеживание проблем, управление временем и глубокая интеграция с git.
RTrack: Создание современной платформы управления проектами
RTrack — это комплексная система управления проектами и отслеживания проблем, построенная на Rails 8. Сейчас в приватной бете на https://rtrack.ru, она представляет полную реимплементацию нашего backend на Go с улучшенными функциями и современными инструментами.
Архитектура
🔧 Backend Stack
- Rails 8.0 — Современный Rails с Propshaft
- PostgreSQL — Основная база данных с JSONB
- OpenSearch — Возможности полнотекстового поиска
- Redis — Кэширование и фоновые задания
- ActionCable — WebSocket для обновлений в реальном времени
🎨 Admin Interface
- ActiveAdmin 4.0 — Современная админ-панель
- Tailwind CSS — Utility-first стилизация
- Tiptap — Редактор богатого текста
- Tom-Select — Улучшенные dropdowns
Основные функции
Система управления проблемами
В своём сердце RTrack — мощная система отслеживания проблем с:
Возможности проблем
- Редактирование богатого контента с хранением JSON Tiptap
- Иерархические отношения — структура родитель/подзадача
- Пользовательские рабочие процессы с настраиваемыми переходами состояний
- Полнотекстовый поиск через интеграцию OpenSearch
- Расширенная фильтрация по проектам, исполнителям, меткам, этапам
- Массовые операции для эффективного управления
- Вложения файлов с хранением S3/MinIO
Отслеживание времени и управление работой
Встроенные возможности отслеживания времени помогают командам оставаться продуктивными:
⏱️ Функции отслеживания времени
Логирование работы
- Ручной ввод времени с точностью до минуты
- Функция таймера (планируется)
- Категоризация оплачиваемое/неоплачиваемое
- Описания работы и связь с задачами
Аналитика
- Метрики индивидуальной продуктивности
- Отслеживание скорости проекта
- Представления календаря с агрегированными данными
- Экспорт в CSV/XLSX
Git-интеграция
Одна из самых мощных функций RTrack — глубокая интеграция с Git:
🔀 Интеграция с сервисами Git
Синхронизация
Автоматическая синхронизация репозиториев с GitLab и GitHub — webhooks вызывают обновления в реальном времени при изменениях кода.
Связь
Умная связь ветвь-к-проблеме — названия веток вроде feature/PROJECT-123-description автоматически связывают с проблемами.
Извлечение
Извлечение времени работы из сообщений коммитов — разбор времени, потраченного напрямую из коммитов вроде #time 2h30m.
Отслеживание
Отслеживание расхождения веток — мониторинг того, насколько далеко ветки разошлись от своей базовой ветки.
Архитектура API
Мы создали комплексный REST API с 20+ контроллерами, покрывающими все функции:
📡 Покрытие API
Реализованные endpoints:
Основные API
- Аутентификация (JWT с токенами обновления)
- Проблемы (CRUD, поиск, массовые операции)
- Комментарии (упоминания, реакции)
- Проекты (звёзды, архивирование, токены)
- Работы (отслеживание времени, статистика)
Расширенные API
- Файлы (загрузка/выгрузка, интеграция S3)
- Документы (иерархические, контент Tiptap)
- Отпуска (рабочий процесс одобрения, баланс)
- Экспорт (форматы JSON, CSV, XLSX)
- Git (синхронизация, webhooks, ветки)
Аутентификация и авторизация
🔐 Слой безопасности
- JWT-аутентификация с вращением токенов обновления
- Контроль доступа на основе ролей через CanCanCan
- Мультиарендность на основе компаний — полная изоляция данных
- Разрешения на уровне проекта с гранулярным контролем доступа
- Поддержка API-ключей для внешних интеграций
Функции реального времени
RTrack держит команды синхронизированными с обновлениями в реальном времени:
🔴 WebSocket-обновления
- Обновления проблем в реальном времени через ActionCable
- Уведомления о комментариях в реальном времени
- Потоки активности проекта
- Многоканальные уведомления (email, WebSocket, Telegram)
📊 Отслеживание активности
- Всесторонние журналы событий
- История изменений с diffs
- Временные шкалы активности пользователей
- Метрики здоровья проекта
Админ-панель
Админ-интерфейс на базе ActiveAdmin предоставляет мощные возможности управления:
⚙️ Возможности админа
Ресурсы админа
- Управление пользователями — роли, разрешения, ассоциации компаний
- Администрирование компании — настройки, участники, проекты
- Надзор за проектом — количество проблем, управление участниками
- Координация команды — назначения и сотрудничество
- Отслеживание проблем — фильтры, массовые действия, изменения состояния
- Надзор за временем — записи работ, одобрения отпусков
Путешествие миграции
Мы мигрируем с backend на Go, поддерживая паритет функций:
Фаза 1 завершена
Основная функциональность — auth, пользователи, компании, проекты, проблемы, комментарии, работы, базовые CRUD-операции.
Фаза 2 завершена
Расширенные функции — полнотекстовый поиск, управление файлами, команды и участники, функция экспорта.
Фаза 3 в процессе
Функции интеграции — git-интеграция, webhooks, внешние API, уведомления в реальном времени.
Фаза 4 запланирована
Аналитика и отчётность — панели мониторинга, отчёты, API аналитики, расширенные функции поиска.
Технические моменты
Паттерн сервисных объектов
Мы поддерживаем чистую архитектуру с сервисными объектами для всей бизнес-логики:
class IssuesFinder < Finders::Base
def initialize(user, params = {})
@user = user
@params = params
@relation = Issue.accessible_by(@user)
end
def call
with_aggregations
with_projects_aggregation
apply_filters
sort_results
paginate_results
end
end
Оптимизации производительности
⚡ Функции производительности
- Предотвращение запросов N+1 с eager loading
- Индексы базы данных на часто запрашиваемых столбцах
- Кэширование Redis для дорогих операций
- Умная пакетная обработка для фоновых заданий
- Поддержка пагинации на всех endpoints списка
Текущий статус
🚀 RTrack сегодня
Что работает:
Завершено
- 20+ контроллеров REST API
- Система JWT-аутентификации
- Полнотекстовый поиск через OpenSearch
- Загрузка файлов с S3/MinIO
- Git-интеграция (синхронизация GitLab)
- Отслеживание времени и отчётность
- Система управления отпусками
- Обновления WebSocket в реальном времени
В процессе
- Панели мониторинга расширенной аналитики
- Поддержка мобильных приложений
- Дополнительные провайдеры Git
- Функции автоматизации рабочих процессов
- Улучшенная отчётность
Сводка технологического стека
🛠️ Полный стек
Backend: Rails 8.0, Ruby 3.3+, PostgreSQL, Redis, OpenSearch
Frontend: ActiveAdmin 4.0, Tailwind CSS, Tiptap, Tom-Select
Интеграции: GitLab, GitHub, Telegram, SMTP, S3/MinIO
Testing: RSpec, Capybara, 1,600+ examples
Infrastructure: Docker, GitLab CI, Sidekiq
Что дальше
RTrack сейчас в приватной бете — мы уточняем платформу на основе ранней обратной связи пользователей. Миграция с нашего backend на Go почти завершена, с основными функциями полностью функциональными и расширенными интеграциями, полируемыми.
📋 Приоритеты дорожной карты
- Панели мониторинга аналитики — Визуальные идеи в продуктивности команды
- Мобильное приложение — Собственные приложения iOS/Android
- Автоматизация рабочих процессов — Пользовательские триггеры и действия
- Расширенный поиск — Фильтры, сохранённые запросы, оповещения
- Оптимизация производительности — Цели ответа API менее 200ms
Создание RTrack было путём переосмысления управления проектами с современными паттернами Rails. Платформа сочетает мощные функции с чистой архитектурой, доказывая, что Rails 8 — отличный выбор для сложных приложений, управляемых данными.
Приватная бета продолжается на https://rtrack.ru. Если вам интересно попробовать, следите за нашим объявлением о публичном запуске.