Skip to content

IlDezmond/QRkot_spreadsheets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QRkot_spreadseets

Описание проекта

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

Использованные технологии

  • FastAPI
  • SQLAlchemy
  • Aiogoogle

Установка

Склонируйте репозиторий:

git clone git@github.com:IlDezmond/cat_charity_fund.git

Cоздать и активировать виртуальное окружение:

python3 -m venv venv
  • Если у вас Linux/macOS

    source venv/bin/activate
    
  • Если у вас windows

    source venv/scripts/activate
    

Установить зависимости из файла requirements.txt:

python3 -m pip install --upgrade pip
pip install -r requirements.txt

Создайте в корневой директории файл .env со следующим наполнением:

APP_TITLE=Приложение QRKot.
APP_DESC=Спасем котиков вместе!
DATABASE_URL=sqlite+aiosqlite:///./<название базы данных>.db
SECRET=<секретное слово>
FIRST_SUPERUSER_EMAIL=<email суперпользователя>
FIRST_SUPERUSER_PASSWORD=<пароль суперпользователя>

Примените миграции для создания базы данных SQLite:

alembic upgrade head

Первый суперпользователь будет создан автоматически при указании параметров First_superuser_email и First_superuser_password в .env

Запуск и использование:

Для локального запуска выполните команду:

uvicorn app.main:app --reload

Сервис будет запущен и доступен по следующим адресам:

После запуска доступны следующие эндпоинты:

  • Регистрация и аутентификация:
    • /auth/register - регистрация пользователя
    • /auth/jwt/login - аутентификация пользователя (получение jwt-токена)
    • /auth/jwt/logout - выход (сброс jwt-токена)
  • Пользователи:
    • /users/me - получение и изменение данных аутентифицированного пользователя
    • /users/{id} - получение и изменение данных пользователя по id
  • Благотворительные проекты:
    • /charity_project/ - получение списка проектов и создание нового
    • /charity_project/{project_id} - изменение и удаление существующего проекта
  • Пожертвования:
    • /donation/ - получение списка всех пожертвований и создание пожертвования
    • /donation/my - получение списка всех пожертвований аутентифицированного пользователя

Примеры запросов

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

POST http://127.0.0.1:8000/auth/jwt/login
Content-Type: application/json

{
    "username": "user",
    "password": "pass"
}

Получение списка проектов

GET http://127.0.0.1:8000/charity_project/

Создание проекта

POST http://127.0.0.1:8000/charity_project/
Content-Type: application/json

{
  "name": "string",
  "description": "string",
  "full_amount": 1
}

Создание пожертвования

POST http://127.0.0.1:8000/donation/
Content-Type: application/json

{
  "full_amount": 1,
  "comment": "string"
}

Создание отчёта в гугл таблице

GET http://127.0.0.1:8000/google/

С подробными схемами запросов и ответов можно ознакомиться в документации или в файле со спецификацией - openapi.json.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published