Skip to content

Vangardo/test_saas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовый пример SaaS проекта

Этот проект является тестовым примером SaaS приложения. Он предназначен для демонстрации основного шаблона архитектуры и принципов взаимодействия в рамках подобных проектов.

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

Проект включает в себя следующие основные компоненты:

├── requirements.txt         # Зависимости проекта
├── app/                     # Основная директория приложения
│   ├── __init__.py
│   ├── api/                 # API приложения
│   │   ├── main.py          # Основной модуль API
│   │   ├── __init__.py
│   │   ├── auth/            # Модули аутентификации
│   │   │   ├── auth_utils.py
│   │   │   ├── __init__.py
│   │   ├── handlers/        # Обработчики запросов
│   │   │   ├── docs.py
│   │   │   ├── webhooks.py
│   │   │   ├── __init__.py
│   │   ├── models/          # Модели данных
│   │   │   ├── standard.py
│   │   │   ├── webhooks.py
│   │   │   ├── __init__.py
│   │   ├── processing/      # Обработка данных
│   │       ├── parametr_sql_validator.py
│   │       ├── webhooks.py
│   │       ├── __init__.py
├── configs/                 # Конфигурации
│   ├── config.ini
│   ├── config.py
│   ├── __init__.py
├── database/                # Взаимодействие с базой данных
    ├── onlihub_objects.py
    ├── psql.py
    ├── __init__.py

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

Чтобы запустить проект, выполните следующие шаги:

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

    git clone https://github.com/Vangardo/test_saas
    
  2. Перейдите в директорию проекта:

    cd test_saas
    
  3. Установите необходимые зависимости:

    pip install -r requirements.txt
    
  4. Перейдите в папку app, где находится файл main.py:

    cd app
    
  5. Запустите приложение с помощью Uvicorn:

    uvicorn main:app --port 8016
    

Это запустит сервер на порту 8016. Теперь вы можете обращаться к вашему приложению через указанный порт.


Задание

Цель задания — расширение функциональности проекта за счет добавления нового эндпоинта для управления продуктами.
Реализация нового эндпоинта должна быть выполнена в соответствии с существующей архитектурой проекта и структурой, используемой для вебхуков.

Описание эндпоинта Products

Создайте эндпоинт Products, который будет включать в себя следующие операции:

  • Создание продукта: Добавление нового продукта в базу данных.
  • Обновление продукта: Изменение информации о существующем продукте.
  • Удаление продукта: Удаление продукта из базы данных.
  • Получение информации о конкретном продукте: Вывод данных одного выбранного продукта.
  • Получение списка всех продуктов: Вывод списка всех продуктов с информацией о них.

Проверка безопасности должна быть реализована аналогично тому, как это сделано в эндпоинтах вебхуков.

Структура таблицы Products в базе данных

Таблица Products в базе данных должна содержать следующие колонки:

  • id: Уникальный идентификатор продукта.
  • name: Название продукта.
  • user_id: Идентификатор пользователя, добавившего продукт.
  • category_id: Идентификатор категории продукта.
  • status_id: Идентификатор статуса продукта.

Связи с другими таблицами

При получении информации о продуктах необходимо учитывать связи с другими таблицами:

  • Соединение с таблицей categories по колонке category_id: При выводе информации о продукте или списка продуктов следует включать title из таблицы categories.
  • Соединение с таблицей Product_statuses по колонке status_id: Включать информацию о статусе продукта, получая title из таблицы Product_statuses.
  • Соединение с таблицей users по колонке user_id: Включать информацию о пользователе, добавившем продукт, получая name из таблицы users.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages