Skip to content

Latest commit

 

History

History
161 lines (127 loc) · 5.51 KB

File metadata and controls

161 lines (127 loc) · 5.51 KB

Projector - Универсальная система управления проектами

Технологический стек

Backend

  • Framework: Spring Boot
  • Архитектура: Независимые модули
  • Авторизация: JWT (отдельный модуль)
  • База данных: PostgreSQL (основная БД)
  • Кэширование: Redis

Frontend

  • Framework: Angular
  • UI: Легкий UI-kit
  • Основные компоненты:
    • Меню
    • Таблицы
    • Древовидные структуры

Миссия продукта

Помочь в создании и сопровождении любого продукта (или даже серии продуктов).

Основной функционал

1. Roadmap и планирование

  • Создание и управление roadmap на разных уровнях:
    • Год
    • Квартал
    • Релиз
    • Спринт

2. Система задач

Иерархическая структура задач:

  • Релиз
  • Спринт
  • Фича (Feature)
  • Стори (Story)
  • Задача (Task)

3. Этапы жизненного цикла

  • Аналитика
  • Дизайн
  • Разработка
  • Тестирование
  • Сопровождение (баги, доработки)

4. Метрики и аналитика

  • Расчетное и реальное время выполнения
  • Сумма часов снизу вверх (агрегация по иерархии)
  • Цена фичи
  • Метрики по багам
  • Анализ необходимости стабилизационного релиза

Дополнительные возможности (рекомендации)

Роли и права доступа

  • Project Manager (PM)
  • Team Lead
  • Developer
  • Tester
  • Analyst

Дополнительные метрики

  • Velocity команды
  • Burndown charts
  • Lead time / Cycle time
  • Технический долг
  • ROI фич

Интеграции

  • Git (автоматическая связь коммитов с задачами)
  • CI/CD (автоматизация сбора метрик)
  • Импорт из других систем (Jira, YouTrack и т.д.)

Архитектура

Модульная архитектура для обеспечения:

  • Масштабируемости
  • Независимости модулей
  • Легкости поддержки и развития

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

projector/
├── backend/              # Spring Boot бэкенд
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/com/projector/
│   │   │   │   ├── core/           # Основной модуль (JWT, Security)
│   │   │   │   │   ├── config/     # Конфигурации
│   │   │   │   │   ├── component/  # Spring компоненты
│   │   │   │   │   ├── service/    # Бизнес-логика
│   │   │   │   │   ├── model/      # Модели данных
│   │   │   │   │   └── exception/  # Исключения
│   │   │   │   ├── role/           # Модуль ролей
│   │   │   │   ├── user/           # Модуль пользователей
│   │   │   │   └── ProjectorApplication.java
│   │   │   └── resources/
│   │   │       └── application.yml
│   │   └── test/
│   ├── build.gradle
│   ├── settings.gradle
│   └── README.md
├── docker-compose.yml    # Docker Compose для БД (PostgreSQL, Redis)
└── PROJECT.md

Реализация JWT

JWT токены реализованы аналогично проекту /qs/spectrum:

  • Генерация на основе RSA ключей (RS256)
  • Хранение в cookie клиента с именем X-Auth
  • Модульная структура для независимости от основного функционала

Docker Compose

Для разработки и тестирования доступен docker-compose.yml в корне проекта, который поднимает необходимые сервисы:

Сервисы

  1. PostgreSQL 16 (projector-postgres)

    • Порт: 5432
    • База данных: projector
    • Пользователь: projector
    • Пароль: projector
    • Данные сохраняются в Docker volume postgres-data
  2. Redis 7 (projector-redis)

    • Порт: 6379
    • Данные сохраняются в Docker volume redis-data
    • AOF (Append Only File) включен для персистентности

Запуск

# Запустить все сервисы
docker-compose up -d

# Остановить все сервисы
docker-compose down

# Остановить и удалить volumes (очистить данные)
docker-compose down -v

# Просмотр логов
docker-compose logs -f

# Проверка статуса
docker-compose ps

Переменные окружения

Параметры подключения соответствуют настройкам в application.yml:

  • DB_USERNAME=projector (по умолчанию)
  • DB_PASSWORD=projector (по умолчанию)
  • REDIS_HOST=localhost (по умолчанию)
  • REDIS_PORT=6379 (по умолчанию)