Перейти к основному содержимому

Проект 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 — управление нерегулярными задачами

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

Локальная разработка

  1. Клонировать репозиторий:
git clone git@gitlab.company.com:scount/scount-platform.git
cd scount-platform
  1. Запустить инфраструктуру:
docker-compose up -d
  1. Применить миграции:
cd identity/src/Identity.Migrations
dotnet run
  1. Запустить сервис:
cd identity/src/Hosts/Identity.ClientApi.Host
dotnet run

API будет доступен на http://localhost:5000

Структура API

Каждый микросервис имеет несколько API:

  • ClientApi — для веб-клиента
  • MobileApi — для мобильных приложений
  • AdminApi — для панели администратора
  • InternalApi — для межсервисного взаимодействия

Разделы документации

  • Архитектура — описание микросервисов и их взаимодействия
  • API — документация REST API каждого сервиса
  • Развертывание — инструкции по деплою в Kubernetes
  • Интеграции — интеграция с внешними системами