Skip to content

Dina-Tolkina/ToDo-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

FastAPI-ToDo

Описание

Простое API для списка задач, разработанное с использованием FastAPI и PostgreSQL в качестве тестового задания для позиции Junior Python Developer. API позволяет пользователям регистрироваться, входить в систему, создавать, просматривать, обновлять и удалять задачи, а также управлять правами доступа (чтение/обновление) для задач. Только владелец задачи может предоставлять или отзывать права.

Содержание

Функционал

  • Аутентификация пользователей: Регистрация и вход с использованием JWT-токенов.
  • Управление задачами: Создание, просмотр, обновление и удаление задач.
  • Система прав доступа: Владелец задачи может предоставлять или отзывать права на чтение и обновление для других пользователей.
  • База данных: PostgreSQL для хранения данных.
  • Архитектура: Чистая, модульная структура с разделением на роутеры, модели и схемы.

Технологии

  • Python 3.11
  • FastAPI: Фреймворк для создания API.
  • PostgreSQL: База данных для хранения пользователей, задач и прав доступа.
  • Tortoise ORM: Для работы с базой данных.
  • Pydantic: Для валидации и сериализации данных.
  • JWT: Для безопасной аутентификации.

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

FastAPI-ToDo/
├── app/
│   ├── main.py                 # Основное приложение FastAPI
│   ├── models.py              # Модели Tortoise ORM (User, Task, Permission)
│   ├── schemas.py             # Схемы Pydantic для валидации данных
│   ├── core/
│   │   ├── config.py          # Настройки (URL базы данных, модули)
│   │   ├── security.py        # Логика JWT-аутентификации
│   │   ├── tortoise_orm/      # Конфигурации и утилиты для Tortoise ORM
│   ├── routers/
│   │   ├── auth_router.py     # Маршруты API для аутентификации
│   │   ├── task_router.py     # Маршруты API для управления задачами
│   │   ├── permission_router.py  # Маршруты API для управления правами
├── requirements.txt           # Зависимости проекта
└── README.md                 # Этот файл

Как установить и запустить

  1. Клонирование репозитория
git clone https://github.com/Dina-Tolkina/ToDo-API.git
  1. Создать venv
python -m venv venv
  1. Активация виртуальной среды:
  • Для Windows:
    venv\Scripts\activate
    
  • Для Unix или MacOS:
    source venv/bin/activate
    
  1. Установка зависимостей:
pip install -r requirements.txt
  1. Настройка базы данных:
    • Создать файл .env
    • Указать настройки базы данных в файле .env
      SECRET_KEY=123
      postgres://user:password@localhost:5432/database_name
    
    • Применить миграции:
    aerich upgrade
    
  2. Запуск приложения:
    • перейти в папку app
    • запустить команду
     uvicorn main:app --host 127.0.0.1 --port 8000 --reload
    

API будет доступно по адресу http://127.0.0.1:8000/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages