CoolBet - Сервис ставок на любые события
Описание проекта
CoolBet — это микросервисное веб-приложение для ставок на спортивные и другие мероприятия с использованием внутренней валюты.
Сделать ставку очень легко - достаточно приобрести немного УЕ и поставить на любой исход будущего события. Если пользователь угадывает, то он получает часть всей суммы ставок на событие в пропорции своей ставке.
Функциональность
- Регистрация и аутентификация: Пользователи могут зарегистрироваться и войти в систему для доступа к функционалу ставок.
- Создание и управление событиями: Администраторы могут создавать, редактировать и удалять события для ставок.
- Ставки: Пользователи могут выбирать события и делать ставки на различные исходы.
- Просмотр истории ставок: Пользователи могут отслеживать свою историю ставок и результаты событий.
- Управление валютой: Система поддерживает внутреннюю валюту ("УЕ"), которую пользователи могут приобретать, конвертировать и, потенциально, выводить.
Архитектура решения
Проект реализован с использованием микросервисной архитектуры. Основные сервисы включают:
- UserService: Управление регистрацией и аутентификацией пользователей.
- BetsService: Управление событиями, ставками и их историей.
- WalletService: Управление счетами пользователей и внутренней валютой.
- NotificationService: Уведомления пользователей (email и другие).
Используемые технологии
- Backend: .NET 8, ASP.NET Core 8, Entity Framework Core 8, FluentValidation, AutoMapper
- Frontend: React/TS
- Database: PostgreSQL
- Messaging: RabbitMQ
- Тестирование: xUnit, FluentAssertions
- Документирование API: Swagger
- Логирование: Serilog
- Паттерн медиатора: MediatR
- Контейнеризация: Docker, Docker Compose
Команда разработки
- Андрей Николаев (abramson21)
- Михаил Скородумов (mihalych852)
- Илья Зиновкин (Lakki02)
- Анастасия Смолянинова (Kralichka)
- Сергей Свистунов (SergeyFM)