Skip to content

MuraSaichick/SigmaTrack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 SigmaTrack — Система управления проектами и задачами (Project Tracker)

Современный высокопроизводительный таск-трекер для командной разработки. Проект спроектирован по принципам Clean Architecture и DDD (Domain-Driven Design), обеспечивая высокую масштабируемость и независимость слоев.

Приложение разделено на два изолированных слоя: клиент на Nuxt 4 и бэкенд ASP.NET Web API на .NET 10. Вся инфраструктура полностью контейнеризирована.


🏗️ Архитектура системы

⚙️ Backend (API Layer)

Решение на .NET 10 разделено на 4 независимых проекта для обеспечения слабой связанности и строгого контроля зависимостей:

  1. SigmaTrack.Domain (Ядро системы): Чистый C# без внешних зависимостей. Содержит доменные сущности, перечисления и бизнес-исключения.
  2. SigmaTrack.Application (Бизнес-логика): Реализован по принципу Vertical Slices (Features). Каждая фича (например, CreateIssue) изолирована и содержит UseCase, хэндлеры, DTO и FluentValidation.
  3. SigmaTrack.Infrastructure (Инфраструктура): Реализует интерфейсы доступа к данным (контекст БД EF Core, миграции PostgreSQL) и внешние интеграции.
  4. SigmaTrack.WebApi (Точка входа): Minimal APIs, конфигурация DI-контейнера, JWT-аутентификация, Claims-авторизация, интеграция со Scalar и GlobalExceptionHandler (формат RFC 7807).

💻 Frontend (Client Layer)

  • Framework: Nuxt 4 (Vue 3, Composition API) с полной типизацией на TypeScript.
  • UI & Styles: Nuxt UI + Tailwind CSS (Адаптивный дизайн, поддержка темной/светлой темы).
  • State Management: Pinia (Модульные сторы для управления проектами, задачами и уведомлениями).
  • Internationalization: Nuxt i18n (Архитектура с разделением локалей на отдельные файлы конфигурации RU/EN).

🛠️ Стек технологий

  • Runtime & СУБД: .NET 10 (C#) + PostgreSQL
  • ORM & Валидация: Entity Framework Core + FluentValidation
  • Фронтенд: Node.js + Nuxt 4 + Tailwind CSS + Pinia
  • DevOps & Инфраструктура: Docker + Docker Compose + Nginx (Reverse Proxy)

📌 Реализованный функционал (Текущая версия)

  • Аутентификация и пользователи: Регистрация, авторизация (JWT + Claims), управление личным профилем.
  • Управление проектами: Создание, редактирование и удаление проектов; управление участниками и ролями (Project Manager, Developer, QA, Observer); система инвайтов в команду (принять/отклонить).
  • Работа с задачами (Issues): Создание, просмотр деталей, редактирование и удаление задач. Автогенерация уникальных номеров задач внутри проекта (префиксы), назначение исполнителей, Story Points, тегирование и комментарии. Вывод сквозных «Активных задач пользователя» со всех проектов на один экран.
  • Система уведомлений & UI/UX: Умный роутинг (при переходе по уведомлению из другого проекта система автоматически переключает контекст активного проекта в шапке).
  • DevOps-инфраструктура: Полная контейнеризация всех сервисов, оркестрация через docker-compose, и маршрутизация/CORS через Nginx в качестве Reverse Proxy.

📖 Документация и Бэклог

Для удобства поддержки техническая документация и планы по развитию разделены на специализированные файлы:


🚀 Как запустить проект

Вариант 1: Быстрый запуск через Docker (Рекомендуемый)

  1. Убедитесь, что у вас установлены Docker и Docker Compose.
  2. В корневой папке проекта (рядом с docker-compose.yml) создайте файл .env для инициализации контейнеров:
# Конфигурация базы данных PostgreSQL
DB_NAME=SigmaTrackDb
DB_USER=postgres
DB_PASSWORD=your_secure_password

# Окружение бэкенда
BACKEND_ENV=Development
  1. Выполните команду для сборки и запуска всей инфраструктуры:
docker-compose up -d --build

После сборки Nginx начнет слушать порт 80, и приложение будет доступно по адресу http://localhost.


Вариант 2: Запуск для локальной разработки (Раздельный)

1. Настройка бэкенда (backend/)

  1. Перейдите в папку backend/SigmaTrack.WebApi.
  2. Скопируйте appsettings.json в appsettings.Development.json и укажите вашу строку подключения к PostgreSQL в ConnectionStrings:DefaultConnection.
  3. Примените миграции к базе данных:
dotnet ef database update --project SigmaTrack.Infrastructure --startup-project SigmaTrack.WebApi
  1. Запустите API:
dotnet run --project SigmaTrack.WebApi

2. Настройка фронтенда (frontend/)

  1. Перейдите в папку frontend/, скопируйте .env.example в .env и укажите адрес запущенного API:
NUXT_PUBLIC_API_BASE=http://localhost:5069
  1. Установите зависимости и запустите сервер разработки:
pnpm install
pnpm dev

About

Project management platform built with ASP.NET Core Web API (Minimal APIs) and Nuxt 4 (TypeScript) using clean architecture without MediatR.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors