Открытая система управления IT-проектами
Лёгкая, современная альтернатива Jira и Яндекс.Трекер для разработчиков и небольших команд.
Создать open-source решение для управления проектами, спринтами и задачами, которое просто развернуть на собственном сервере.
- 📊 Управление проектами и задачами
- 🏃 Спринты и бэклог
- 🐛 Issue tracking
- 🚀 Простое развёртывание
- 💻 Открытый исходный код
# Установка зависимостей
pnpm install
# Запуск в режиме разработки
pnpm dev
# Запуск тестов
pnpm test
# Сборка проекта
pnpm buildtracker-task/
├── apps/
│ ├── api/ # NestJS API сервер
│ └── web/ # Next.js веб-приложение
├── packages/
│ ├── api/ # Общие типы и DTO
│ ├── ui/ # UI компоненты
│ ├── eslint-config/ # Конфигурация ESLint
│ ├── vitest-config/ # Конфигурация Vitest
│ └── typescript-config/ # Конфигурация TypeScript
- Next.js - для создания серверного рендеринга и статической генерации страниц
- TypeScript - для статической типизации
- TanStack Query - для управления серверным состоянием и кэшированием данных
- Tanstack query (react query) полный курс от А до Я за 70 минут
- Zustand - для управления локальным состоянием
- Zustand и React query. State management в React без боли
- Persisting store data - для сохранения состояния в localStorage
- ShadCN UI + Tailwind CSS/Tailwind v4 - для UI компонентов
- React Hook Form + Zod - для валидации форм
- Turborepo - для монорепозитория
- axios - для HTTP запросов
- Feature sliced design - для организации структуры проекта
- 10 ОШИБОК НОВИЧКОВ В FSD
- ESLint - для статической проверки кода
- Prettier - для форматирования кода
- Husky - для запуска скриптов при коммитах и пушах
- sentry (используем glitchtip как альтернативу, тк sentry в рф не работает, но API там тот же) - для мониторинга ошибок в продакшене
- Vitest - для тестирования
- React Testing Library - для тестирования компонентов
- Storybook - для разработки и тестирования UI компонентов в изоляции
- pnpm
- Обязательный линтинг + линтер на правила соблюдения FSD
- Обязательное код ревью каждой задачи
- Минимум кастомных стилей по месту, используем разработанный UI kit
- Обязателен CI пайплайн
- NestJS - для создания серверного приложения
- TypeScript - для статической типизации
- Socket.IO - для уведомлений
- Prisma - для работы с базой
- Swagger UI - для документирования API
- sentry - для мониторинга ошибок в продакшене
- Redis - для кэширования и управления сессиями
- PostgreSQL - для хранения данных
- pgAdmin - для управления базой данных PostgreSQL
- PostgreSQL(ITBooster)
- BullMQ - для управления очередями задач
- OpenAI Node.js - для интеграции с OpenAI API
- Passport.js - для аутентификации
- Интеграция Passport.js с NestJS - интеграция Passport.js с NestJS
- ESLint - для статической проверки кода
- Prettier - для форматирования кода
- Husky - для запуска скриптов при коммитах и пушах
- Supabase - для управления базой данных и аутентификации
- Docker - для контейнеризации приложений
- pnpm
- Grafana Loki - для логирования и мониторинга
- Prometheus - для мониторинга и алертинга
- Promtail deprecated | Alloy - для отправки логов в Grafana Loki
- Grafana - для визуализации метрик и логов
- node_exporter - для экспорта метрик системы
- cAdvisor - для мониторинга контейнеров
- Запуск в проде в нескольких инстансах для обеспечения отказоустойчивости
- Обязательный линтинг
- Обязательное код ревью каждой задачи
- Соблюдение модульной архитектуры + слоистой структуры проекта.
- Обязателен CI пайплайн
-
CI_CD - для автоматизации сборки, тестирования и деплоя приложения
-
Обязательно на каждый пул реквест прогоняем линтеры, тесты, билд проекта, typecheck через ts.
-
Релизы через отведение ветки + нажатие кнопки release в github.
-
Пуш в dev/trunk/master - запрещен напрямую, только через ПР с код ревью
-
Работа с гит через trunk based подход
-
При деплое - обязательная контейнеризация
-
Продакшн
-
Сбор логов и метрик в проде - обязателен.
-
Хранение переменных окружения .env + github
-
Ведение документации (запуск проекта, переменные, особенности и тд)
-
Релиз в прод должен быть легким и удобным, 1 нажатием кнопки в гитхабе.
Проверьте настройки гита, чтобы коммиты имели правильного автора.:
git config --global user.name "Ваше имя"
git config --global user.email "ваш.email@example.com"