Skip to content

ASP.NET Core API для управления задачами

Notifications You must be signed in to change notification settings

leonidstrelok/TaskMaster

Repository files navigation

Task Manager

Task Manager API — это RESTful сервис для управления задачами. Он позволяет пользователям создавать, редактировать, удалять задачи и управлять их статусами. API поддерживает регистрацию и авторизацию пользователей через JWT, обеспечивает безопасность данных и предоставляет удобные возможности фильтрации.


Функциональность

Основные возможности:

  1. Регистрация пользователей.
  2. Авторизация с использованием JWT.
  3. CRUD-операции с задачами:
    • Создание задачи.
    • Просмотр задач.
    • Обновление задач.
    • Удаление задач.
  4. Фильтрация задач:
    • По статусу (выполненные/невыполненные).
    • По дедлайну.
  5. Валидация данных.

Технологии

  • Backend: ASP.NET Core (8.0)
  • База данных: PostgreSQL
  • Авторизация: JWT (JSON Web Token)
  • Контейнеризация: Docker (опционально)
  • Документация API: Swagger/OpenAPI

API Эндпоинты

Пользователи (авторизация и регистрация)

Метод Endpoint Описание Авторизация
POST /api/v1/auth/register Регистрация нового пользователя Нет
POST /api/v1/auth/login Авторизация пользователя (JWT) Нет

Задачи

Метод Endpoint Описание Авторизация
GET /api/tasks Получить список задач Да
POST /api/tasks Создать новую задачу Да
GET /api/tasks/{id} Получить задачу по ID Да
PUT /api/tasks/{id} Обновить задачу Да
DELETE /api/tasks/{id} Удалить задачу Да
GET /api/tasks/filter Фильтровать задачи Да

Структура базы данных

Таблица Client

Поле Тип Описание
Id string Уникальный идентификатор
Username string Логин пользователя
Email string Email пользователя
PasswordHash string Хэш пароля

Таблица Tasks

Поле Тип Описание
Id GUID Уникальный идентификатор
Title string Название задачи
Description string Описание задачи
Status string Статус задачи (например, "done")
ExpiredAt DateTime? Дата выполнения задачи
CreatedAt DateTime? Дата выполнения задачи
Priority int Приоритет задачи
ClientId string Внешний ключ на пользователя
Comments ICollection Комментарии к задаче
Label string Тип задачи (bug, feature, hotfix)

Таблица HistoryTask

Поле Тип Описание
Id GUID Уникальный идентификатор
Title string Название задачи
WhatHasBeenUpdated string Что было сделано
CreatedAt DateTime? Дата выполнения задачи
TaskId GUID Идентификатор задачи

Таблица CommentTask

Поле Тип Описание
Id GUID Уникальный идентификатор
Comment string Комментарий
CreatedAt DateTime? Дата создание комментария
ClientId string Идентификатор клиента
Tasks ICollection Список задач

Таблица Company

Поле Тип Описание
Id GUID Уникальный идентификатор
NameCompany string Название компании
DescriptionCompany string Описание компании (необязательное поле)
CompanyIndustry string Чем занимается компания
QuantityEmployees int Количество сотрудников
Tasks ICollection Задачи
Clients ICollection Сотрудники

Как развернуть проект

1. Установить зависимости

  • Установите .NET SDK версии 8.0 или выше.
  • Docker
  • Скачайте WSL образы (если вы запускаете на Windows).

2. Запуск в Docker можно произвести с помощью команды

  • Для Windows: перейдите в корень проекта и выполните скрипт ./run-containers.ps1
  • Для Linux: Перейдите в корень проекта и выполните скрипт ./run-containers.sh

3. Настроить подключение к базе данных

В файлах appsettings.json - appsettings.Development.json укажите строку подключения:

"ConnectionStrings": {
  "DefaultConnection": "Host=localhost;Database=TaskManager;Username={YourUserName};Password={YourPassword}"
},
"ApplicationSettings": {
  "Key": "YourSecretKey",
  "Issuer": "TaskManagerAPI",
  "Audience": "TaskManagerAPIUsers",
  "TokenValidityInMinutes": "5"
}

About

ASP.NET Core API для управления задачами

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published