Skip to content

dazdik/Task-Manager

Repository files navigation

Task-Manager

Task-Manager - это диспетчер задач, предназначенный для организации и отслеживания рабочих задач. Приложение разработано с использованием фреймворка FastAPI, обеспечивая базовые операции CRUD (создание, чтение, обновление, удаление) для задач и включает обновление в реальном времени информации о задачах и юзерах через WebSocket.

мем

Содержание

Возможности

  • Регистрация и аутентификация пользователей.
  • Операции CRUD для задач и пользователей(Создание, Чтение, Обновление, Удаление).
  • Обновление информации в реальном времени о задачах и пользователях с использованием WebSocket.
  • Аутентификация OAuth2 для доступа к API.
  • Доступ к админ-панели.
  • Фильтрация задач и пользователей.
  • Пагинация.
  • Кэширование с помощью Redis.
  • Лимит запросов от пользователей.

Структура проекта

Task-Manager/
├── alembic/
├── app/
│ ├── api/
│     ├── core/ 
│     ├── db/ 
│     ├── endpoints/
│     └── schemas/
├── commands
├── docker
│ ├── app.sh
├── .env
├── .gitignore
├── alembic.ini
├── docker-compose.yaml
├── LICENSE
├── main.py
├── poetry.lock
├── pyproject.toml
└── README.md

Установка и запуск проекта

  1. Клонируйте репозиторий:

    git clone https://github.com/dazdik/Task-Manager/
  2. Перейдите в папку проекта:

    cd Task-Manager
  3. Создайте виртуальное окружение (рекомендуется):

    python3 -m venv venv
    source venv/bin/activate  # On Windows, use venv\Scripts\activate.bat
  4. Переименовать шаблон-файл переменных окружения .env.example в .env.

    Ввести свои настройки в .env (с настройками по-умолчанию не безопасно).

  5. Запустите Docker Compose:

    docker-compose up --build -d

Примечания:

В контейнере поднимается и БД, redis и само приложение.

Создаётся тестовый суперпользователь admin с паролем admin(можно поменять эти значения).

Создаются 12 тестовых пользователей с ролями менеджер и юзер, а так же 10 тестовых задач.

Приложение готово к работе по адресу http://localhost:8001/

Конечные точки API

Аутентификация

  • POST /api/auth/#/ - Вход в систему

Админ-панель

  • GET /admin - админ-панель, права доступа — админ

Пользователи

  • POST /api/users/create - Создание пользователя
  • GET /api/users/all - Получение списка всех пользователей
  • GET /api/users/me - Получение информации о текущем пользователе
  • GET /api/users/{user_id} - Получение информации о пользователе по ID
  • DELETE /api/users/{user_id} - Удаление пользователя по ID
  • PATCH /api/users/{user_id} - Изменение информации о пользователе по ID

Задачи

  • POST /api/tasks/create - Создание задачи
  • GET /api/tasks/ - Получение списка всех задач
  • GET /api/tasks/{task_id} - Получение задачи по ID
  • DELETE /api/tasks/{task_id} - Удаление задачи по ID
  • PATCH /api/tasks/{task_id} - Обновление информации о задаче по ID
  • GET /api/tasks/test - Получение тестовых задач

Websocket

  • ws://localhost:8001/api/tasks/ws/ - Позволяет клиенту установить WebSocket соединение и отправлять/получать уведомления о создании или удалении задачи в системе.

  • ws://localhost:8001/api/tasks/ws/{task_id} - Клиент может подключиться к этому WebSocket, чтобы получать и отправлять данные, связанные с задачей по её идентификатору. Если задача с указанным ID не существует, будет возвращена ошибка 404.

  • ws://localhost:8001/api/users/ws/ - WebSocket конечная точка для уведомлений пользователей. Клиенты могут подключаться для получения уведомлений, связанных с их активностями в системе.

Административная панель

Позволяет администраторам просматривать и управлять пользователями и задачами в системе.

Функции административной панели включают:

  • Добавление пользователей или задач
  • Редактирование информации
  • Удаление пользователей/задач
  • Поиск
  • Экспорт данных

Для доступа к этим функциям необходимы соответствующие права администратора.

Доступ к Swagger UI

После запуска API вы можете получить доступ к Swagger UI по следующему URL:

http://localhost:8001/docs

Используйте Swagger UI для:

  1. Просмотра конечных точек
  2. Отправки запросов
  3. Просмотра ответов
  4. Тестовые проверки

Для тестирования с помощью Swagger UI выполните следующие действия для каждой конечной точки, описанной выше:

  1. Откройте ваш веб-браузер и перейдите по указанному выше пути /docs.

  2. Изучите доступные конечные точки и выберите ту, которую вы хотите протестировать.

  3. Нажмите на кнопку "Try it out" для открытия интерактивной формы, где вы можете ввести данные.

  4. Заполните необходимые параметры и тело запроса (если применимо) согласно документации API, приведенной выше.

  5. Нажмите кнопку "Execute", чтобы отправить запрос на API.

  6. Ответ будет отображен ниже, показывая код состояния и данные ответа.

  7. Вы также можете просмотреть примеры запросов и ответов, что может быть полезно для понимания ожидаемого формата данных.

Использованные инструменты

  • FastAPI - основной фреймворк веб-приложения.
  • Docker - для контейнеризации приложения.
  • Poetry - для управления зависимостями.

Авторы

Лицензия

Этот проект лицензирован по лицензии MIT - смотрите файл LICENSE для подробностей.


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages