Проект Scount
Документация платформы управления спортивными активностями и достижениями.
О проекте
Scount — это микросервисная платформа для управления пользователями, спортивными активностями, достижениями, рейтингами и историей операций.
Основные возможности
- 👤 Identity — управление пользователями и аутентификация
- 🏃 Sport Activities — отслеживание спортивных активностей
- 🏆 Achievements — система достижений и наград
- 📊 Ratings — рейтинговая система пользователей
- 📜 Operations History — история операций и действий пользователей
- 🗂️ Sport Data — справочная информация о видах спорта
- 🎯 Task Managers — управление периодическими и спорадическими задачами
Технологический стек
- Backend: .NET 8.0 (C#)
- Architecture: DDD, CQRS, Event Sourcing (MentKit)
- Database: PostgreSQL
- Messaging: Apache Kafka
- Coordination: Apache ZooKeeper
- Cache: Redis
- API Gateway: nginx-ingress + Envoy (public-gateway)
- Container: Docker, Kubernetes
Архитектура
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Client │─────▶│ API Gateway │─────▶│ Microservices │
│ (Web/App) │ │ nginx-ingress│ │ │
└─────────────┘ └──────────────┘ └────────┬────────┘
│
┌────────────────────────┼────────────────┐
↓ ↓ ↓
┌────────────┐ ┌────────────┐ ┌────────────┐
│ Identity │ │ Scount │ │ Ratings │
└────────────┘ └────────────┘ └────────────┘
↓ ↓ ↓
┌────────────┐ ┌────────────┐ ┌────────────┐
│ PostgreSQL │ │ Kafka │ │ Redis │
└────────────┘ └────────────┘ └────────────┘
Микросервисы
Core Services
- Identity — аутентификация, авторизация, управление пользователями
- Scount — основной сервис управления счетчиками и активностями
- Ratings — рейтинговая система и лидерборды
- Achievements — система достижений и бейджей
- Operations History — аудит и история действий
Data Services
- Sport Activities — спортивные активности пользователей
- Sport Data — справочники видов спорта, дисциплин и событий
Task Management
- Sport Activities Task Manager — планирование задач по активностям
- Sporadic Activities Task Manager — управление нерегулярными задачами
Быстрый старт
Локальная разработка
- Клонировать репозиторий:
git clone git@gitlab.company.com:scount/scount-platform.git
cd scount-platform
- Запустить инфраструктуру:
docker-compose up -d
- Применить миграции:
cd identity/src/Identity.Migrations
dotnet run
- Запустить сервис:
cd identity/src/Hosts/Identity.ClientApi.Host
dotnet run
API будет доступен на http://localhost:5000
Структура API
Каждый микросервис имеет несколько API:
- ClientApi — для веб-клиента
- MobileApi — для мобильных приложений
- AdminApi — для панели администратора
- InternalApi — для межсервисного взаимодействия
Разделы документации
- Архитектура — описание микросервисов и их взаимодействия
- API — документация REST API каждого сервиса
- Развертывание — инструкции по деплою в Kubernetes
- Интеграции — интеграция с внешними системами