Skip to content

Latest commit

 

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Сервис покупки товаров для авторизованных пользователей

Данный раздел содержит информацию по описанию сервиса.
Руководство по запуску проекта TODO.md.
Документация API 127.0.0.1:8000/api/v1/docs

Представляет API-сервис для поддержки функционала интернет-магазина. Содержит три части: авторизация пользователя, каталог товаров (витрина), корзина покупок.

Полнофункциональный, безопасный и масштабируемый API-сервис с модульной архитектурой, готовый к расширению и интеграции в e-commerce проекты.

Используются технологии:

  • FastAPI asinc
  • PostgreSQL
  • SQLAlchemy
  • Аутентификация JWT
  • Валидация Pydentic
  • Контейнеризация Docker и Docker compose

Основная файловая структура проекта

backend
   app
	core
	    models
		... описание моделей и работа с БД
	shopcase
		... модуль каталога товаров
	users
		... модуль авторизации
		authorization.py Аутантификация пользователя
   tests
      ... тесты
   config.py
   main.py
   .env
   ...
docker-compose.yaml
Dockerfile
start
README.md
TODO.md

Схема моделей проекта

    ---User---
+-- id
|   full_name: str
|   email: str
|   phone: str
|   password: str
|   disabled: bool
|   roles: str
|
|   ---Cart---
|   id
+-< user_id: int
    price: int
    quantity: int
+-< product_id: int
|  
|
|   ---ProductShop---
+-- id
    name: str
    description: str
    price: int
    quantity: int
    created_at: datetime
    updated_at: datetime
    is_active: bool
  • Авторизация пользователя

Модуль Users app/users Обеспечивает регистрацию пользователей, аутентификацию пользователя и выдачу JWT, авторизацию и методы работы с моделью Users. Регистрация пользователя. Принимает запрос с параметрами согластно api/v1/docs

Проверки:

  • Уникальность полей email и phone
  • Валидность полей проверяется Pydentic согластно схеме
  • Валидность пароля проверяется регулярным выражнием
  • Email и телефон — уникальныея Создает модель User в БД

Аутентификация по email или телефону + пароль Принимает запрос с параметрами согластно api/v1/docs Идентифицирует пользователя и выдает ему JWT доступа и рефреш JWT время действия указываются в .env

Идентифицированный по jwt доступа пользователь авторизируется согластно его роли

  • Каталог товаров (витрина)

    • CRUD-операции доступны только администраторам • Для обычных пользователей — только просмотр активных товаров и количество которых больше 0

  • Корзина покупок

    Поддержка добавления, удаления и очистки товаров в корзине

About

Представляет API-сервис для поддержки функционала интернет-магазина. Содержит три части: авторизация пользователя, каталог товаров (витрина), корзина покупок.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages