Skip to content

theSharque/projector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

License: MIT

Projector - это универсальная система управления проектами, предназначенная для помощи в создании и сопровождении любого продукта или серии продуктов.

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

Backend

  • Framework: Spring Boot 3.5.3
  • Архитектура: Модульная, реактивная
  • База данных: PostgreSQL 16 (R2DBC)
  • Кэширование: Redis 7 (Reactive)
  • Авторизация: JWT (RS256)
  • Java: 17
  • Сборщик: Gradle 8.5

Frontend

  • Framework: React 19
  • TypeScript: Полная типизация
  • Сборщик: Vite
  • UI: Ant Design 5
  • Роутинг: React Router
  • State Management: Zustand + React Query
  • HTTP Client: Axios

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

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

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

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

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

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

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

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

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

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

5. Управление пользователями и ролями

  • Система ролей с правами доступа
  • Назначение ролей пользователям
  • JWT аутентификация

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

projector/
├── backend/              # Spring Boot бэкенд
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/com/projector/
│   │   │   │   ├── core/           # Основной модуль (JWT, Security)
│   │   │   │   ├── user/           # Модуль пользователей
│   │   │   │   ├── role/           # Модуль ролей
│   │   │   │   ├── roadmap/        # Модуль roadmap
│   │   │   │   ├── feature/        # Модуль features
│   │   │   │   └── task/           # Модуль задач
│   │   │   └── resources/
│   │   │       └── application.yml
│   │   └── test/                   # E2E тесты
│   ├── build.gradle
│   └── README.md
├── frontend/             # React frontend
│   ├── src/
│   │   ├── api/          # API клиенты
│   │   ├── components/   # Переиспользуемые компоненты
│   │   ├── features/    # Feature-based структура
│   │   ├── hooks/       # Custom hooks
│   │   ├── stores/      # Zustand stores
│   │   └── types/       # TypeScript типы
│   └── README.md
├── docker-compose.yml    # Docker Compose для БД
├── README.md             # Этот файл
└── LICENSE               # MIT License

🚀 Быстрый старт

Предварительные требования

  • Java 17+
  • Node.js 18+
  • Docker и Docker Compose
  • PostgreSQL 16+ (или через Docker)
  • Redis 7+ (или через Docker)

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

  1. Клонируйте репозиторий:

    git clone <repository-url>
    cd projector
  2. Запустите базу данных и Redis:

    docker-compose up -d
  3. Запустите backend:

    cd backend
    ./gradlew bootRun

    Backend будет доступен по адресу http://localhost:8080

  4. Запустите frontend:

    cd frontend
    npm install
    npm run dev

    Frontend будет доступен по адресу http://localhost:5173

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

Backend

  • DB_USERNAME - пользователь PostgreSQL (по умолчанию: projector)
  • DB_PASSWORD - пароль PostgreSQL (по умолчанию: projector)
  • DB_PORT - порт PostgreSQL (по умолчанию: 5433)
  • REDIS_HOST - хост Redis (по умолчанию: localhost)
  • REDIS_PORT - порт Redis (по умолчанию: 6380)
  • SERVER_PORT - порт приложения (по умолчанию: 8080)
  • TOKEN_MAX_AGE - время жизни JWT токена в секундах (по умолчанию: 3600)

Frontend

Создайте файл .env.local:

VITE_API_URL=http://localhost:8080

📚 Документация

API Документация

После запуска backend, API документация доступна по адресу:

Дополнительная документация

  • Backend README - Подробная документация по backend
  • Frontend README - Подробная документация по frontend
  • API Testing Guide - Руководство по тестированию API
  • IDE Setup - Настройка IDE для разработки

🧪 Тестирование

Backend тесты

cd backend
./gradlew test

Frontend тесты

cd frontend
npm test

E2E тесты

cd frontend
npm run test:e2e

🐳 Docker Compose

Проект включает docker-compose.yml для локальной разработки:

Сервисы

  1. PostgreSQL 16 (projector-postgres)

    • Порт: 5433:5432
    • База данных: projector
    • Пользователь: projector
    • Пароль: projector
  2. Redis 7 (projector-redis)

    • Порт: 6380:6379
    • AOF (Append Only File) включен

Команды

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

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

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

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

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

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

JWT Аутентификация

  • Алгоритм: RS256 (RSA)
  • Хранение: Cookie с именем X-Auth
  • Время жизни: Настраивается через TOKEN_MAX_AGE

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

Система поддерживает гибкую систему ролей с правами доступа:

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

🛠️ Разработка

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

Backend:

cd backend
./gradlew build

Frontend:

cd frontend
npm run build

Форматирование кода

Backend (Spotless):

cd backend
./gradlew spotlessApply

Frontend (ESLint):

cd frontend
npm run lint
npm run lint:fix

📝 Лицензия

Этот проект лицензирован под MIT License - см. файл LICENSE для деталей.

🤝 Вклад в проект

Приветствуются любые вклады в проект! Пожалуйста, создавайте issue или pull request.

📞 Контакты

Для вопросов и предложений создавайте issue в репозитории.


Projector - Помогаем создавать и сопровождать продукты эффективно! 🚀

About

A document based project flow system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors