StepBook - это социальная сеть, которая объединяет людей, учащихся в STEP IT Academy. Пользователи могут создавать профили, обмениваться сообщениями и ставить лайки друг-другу.
- ASP.NET Core
- Entity Framework Core
- SignalR
- AutoMapper
- FluentValidation
- PostgresSQL
- Docker
- Swagger
- JWT
- Serilog
- Amazon S3 (для хранения файлов)
- Azure (Azure PostgresSQL)
- CloudinaryData (для хранения фотографий пользователей)
Проект построен на основе N-Tier архитектуры. В решении присутствуют следующие проекты:
- StepBook.API - проект API
- StepBook.BLL - бизнес-логика
- StepBook.DAL - доступ к данным
- StepBook.DTO - Data Transfer Objects
- StepBook.BuildingBlocks - общие классы и методы
Одностраничное приложение на Angular
- Установите Docker
- Склонируйте репозиторий
- Перейдите в корень проекта и настройте строку подключения к базе данных в файле
appsettings.json
- В корне проекта выполните команду
docker-compose up
- Перейдите по адресу
https://localhost:7035/swagger
для просмотра документации API
- POST /api/account/register - регистрация пользователя
- POST /api/account/login - авторизация пользователя
- POST /api/account/refresh-token - обновление токена
- POST /api/account/logout - выход из аккаунта
- GET /api/account/email-confirm-code - подтверждение email
- PUT /api/account/change-password - изменение пароля
- PUT /api/account/change-username - изменение логина пользователя
- POST /api/account/forgot-password - восстановление пароля
- POST /api/account/reset-password - сброс пароля
- DELETE /api/account/delete-account - удаление аккаунта
- POST /api/account/request-confirmation-code - запрос кода подтверждения
- POST /api/admin/add-to-blacklist/{username} - добавить пользователя в черный список
- POST /api/admin/remove-from-blacklist/{username} - удалить пользователя из черного списка
- GET /api/admin/blacklist - получить список пользователей в черном списке
- GET /api/admin/reports - получить список жалоб
- DELETE /api/admin/delete-user-account/{username} - удалить аккаунт пользователя
- GET /api/admin/users - получить список пользователей
- POST /api/report/add-report-to-user/{username} - отправить жалобу на пользователя
- POST /api/buckets/upload-file - загрузить файл
- GET /api/buckets/get-file-url - получить URL файла
- GET /api/buckets/get-all-files - получить список файлов
- DELETE /api/buckets/delete-file - удалить файл
- POST /api/likes/{username} - поставить лайк пользователю
- GET /api/likes - получить список лайкнутых пользователей
- POST /api/messages - отправить сообщение
- GET /api/messages - получить список сообщений
- GET /api/messages/thread/{username} - получить список сообщений с пользователем
- DELETE /api/messages/{id} - удалить сообщение
- GET /api/users - получить список пользователей
- PUT /api/users - обновить пользователя
- GET /api/users/{id} - получить пользователя по id
- GET /api/users/{username} - получить пользователя по username
- POST /api/users/add-photo - добавить фото
- PUT /api/users/set-main-photo/{photoId} - установить главное фото
- DELETE /api/users/delete-photo/{photoId} - удалить фото