Это шаблон проекта, который будет разрабатываться в рамках курса на платформе Stepik: присоединяйтесь 🙏
Следить за акциями и специальными предложениями в Telegram
Docker-образ
Swagger по маршруту http://localhost:<PORT>
Together Hub — это платформа для создания и управления топиками с интегрированной системой аутентификации и авторизации, построенная на .NET.
В репозитории есть шаблон проекта. При необходимости можете воспользоваться скриптами для автоинициализации всей структуры.
Во избежание проблем при создании проекта убедительная просьба использовать .NET 9. При желании потом можно обновиться до более поздних версий.
В репозитории доступны два скрипта для автоматической настройки проекта:
Используйте bash-скрипт setup-dotnet-project.sh:
# Сделать скрипт исполняемым
chmod +x setup-dotnet-project.sh
# Запустить скрипт
./setup-dotnet-project.shИспользуйте PowerShell-скрипт setup-dotnet-project.ps1:
# Разрешить выполнение скриптов (от администратора)
Set-ExecutionPolicy RemoteSigned
# Запустить скрипт
.\setup-dotnet-project.ps1- Создают структуру проекта
- Добавляют необходимые NuGet-пакеты
- Настраивают связи между проектами
- Инициализируют базу данных
- Создают начальные миграции
- Для Windows: если возникает ошибка выполнения скрипта, убедитесь что PowerShell запущен с правами администратора
- Для Mac/Linux: если скрипт не запускается, проверьте права на выполнение (
chmod +x) - В обоих случаях должен быть установлен .NET SDK версии 8 или выше
Проект построен с использованием Clean Architecture, применяющей подходы:
- CQRS (Command Query Responsibility Segregation)
- Mediator Pattern
- Domain-Driven Design
- Domain: Содержит основные сущности, value objects и бизнес-правила.
- Application: Отвечает за бизнес-логику и реализацию процессов, таких как команды и запросы.
- Infrastructure: Реализует взаимодействие с базой данных, внешними сервисами и поддерживает Identity.
- API: Включает контроллеры и конфигурацию веб-приложения.
- Backend: .NET 9
- ORM: Entity Framework Core
- База данных: SQLite -> PostgreSQL
- Аутентификация: ASP.NET Core Identity с поддержкой JWT
- Паттерны: CQRS, Mediator
- Валидация: Кастомный middleware для проверки входных данных
- Паттерны: CQRS, Mediator, Repository
- Использование Value Objects: Для работы с идентификаторами и значениями, обеспечивая безопасность и неизменяемость данных.
- Поддержка мягкого удаления (Soft Delete): Удаленные сущности сохраняются в базе, но становятся недоступными.
- Расширенная обработка исключений: Централизованный обработчик с формированием стандартизированных JSON-ответов.
- Гибкая система авторизации: Реализация и настройка политик и требований.
- Автомаппинг DTO и сущностей: С использованием AutoMapper для упрощения преобразования данных между слоями.
- Регистрация и аутентификация пользователей
- Создание и управление топиками
- Система ролей участников (организатор, спикер, участник)
- Комментирование топиков
- Регистрация пользователя
- Получение JWT-токена
- Создание топиков
- Присоединение к топикам
- Добавление комментариев
- Чистая архитектура: Четкое разделение ответственности между слоями.
- Современные подходы разработки: Использование CQRS и DDD-подходов.
- Легкость масштабирования: Благодаря MediatR и независимости слоев.
- Фокус на безопасности: Использование ASP.NET Identity и JWT.
Проект демонстрирует современный подход к разработке backend-приложений с акцентом на чистую архитектуру и принципы Domain-Driven Design
