Skip to content

someqst/todo_test_task

Repository files navigation

TODO TEST TASK

Описание:
Серверная часть:
RESTful API на Python с использованием фреймворка fastapi.

Эндпоинты:
POST /api/v1/create: создание задачи
Входные параметры: Название (title), Описание (description).

GET /api/v1/get_list_by_status: получение задач с сортировкой по статусу.
Входные параметры: Статус (status)

POST /api/v1/get_list: получение всех задач
Входные параметры: Нет

GET /api/v1/get/{todo_id}: получение задачи по id.
Входные параметры: Айди задачи (id)

PUT /api/v1/update/{task_id}: обновление статуса задачи по id
Входные параметры: Айди задачи (id), Статус (status).

DELETE /api/v1/delete/{task_id}: удаление задачи по id
Входные параметры: Айди (id)

Список примененных технологий:

  • pydantic
  • pydantic_settings
  • docker
  • fastapi
  • postgresql
  • pytest
  • grafana
  • prometheus

🛠️ Для установки и запуска сервиса локально, нужно выполнить следующие действия:

  • Клонирование репозитория Клонируйте репозиторий проекта на свой локальный компьютер:
git clone https://github.com/someqst/todo_test_task.git
  • Настройка переменных окружения
    Переименуйте файл .env.example в .env

  • Сборка и запуск контейнеров Соберите и запустите проект с помощью Docker Compose:

docker-compose up --build
  • Grafana
    После запуска будет доступна панель grafana по адресу: http://127.0.0.1:3000

  • Документация API
    Документация автоматически генерируется FastAPI и доступна по адресу: http://127.0.0.1:8000/docs

  • Автотесты
    Вместе с запуском сервиса запускаются интеграционные тесты

🛠️ Для установки и запуска сервиса на сервере, нужно выполнить следующие действия:

  • Приобрести VDS сервер (на VPS вряд ли получится, потому что docker в docker не запустится)

  • Клонирование репозитория на сервер Клонируйте репозиторий проекта на свой локальный компьютер:

git clone https://github.com/someqst/todo_test_task.git
  • Настройка переменных окружения Переименуйте файл .env.example в .env, вставьте свой токен бота

  • Сборка и запуск контейнеров Соберите и запустите проект с помощью Docker Compose:

docker-compose up --build

После запуска проект будет доступен по адресу:
http://{внешний_адрес_вашего_сервера}:8000
Чтобы сервер был доступен извне, стоит открыть порты на сервере, например, с помощью ufw:

sudo ufw allow 8000/tcp

sudo ufw reload

sudo ufw status
  • Документация API Документация автоматически генерируется FastAPI и доступна по адресу:

Swagger UI: http://127.0.0.1:8000/docs

📷 Демонстрация:

1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors