Фонд собирает пожертвования на различные целевые проекты. С помощью API можно создавать целевые проекты с названием, описанием и целевой суммой. Пожертвования направляются в первый открытый проект и когда он закрывается, переходят к следующему по принципу First In, First Out
. Перейти к примерам запросов.
Python 3.7.9
FastAPI
FastAPI-users
SQLAlchemy
Pydantic
Asyncio
Google Api
- Клонируйте проект
git clone https://github.com/TomatoInOil/cat_charity_fund.git
- Перейдите в корневую директорию проекта
cd cat_charity_fund/
- Установите виртуальное окружение с
Python 3.7.9
и активируйте его - Далее установите зависимости
pip install -r requirements.txt
- Заполните
.env
по образцуexample.env
, который лежит в корневой директории - Примините миграции
alembic upgrade head
- Запустите ASGI-сервер. Можно добавить флаг
--reload
, тогда при изменении файлов приложение будет перезапускаться
uvicorn app.main:app
После развёртывания проекта документацию можно найти на эндпоинте .../docs/
POST-запрос .../charity_project/:
{
"name": "На корм для кошек",
"description": "Кошки нуждаются в еде",
"full_amount": 2500
}
Ответ (200):
{
"invested_amount": 0,
"fully_invested": false,
"create_date": "2023-02-13T15:11:47.980127",
"name": "На корм для кошек",
"description": "Кошки нуждаются в еде",
"full_amount": 2500,
"id": 10
}
POST-запрос .../donation/
{
"comment": "Очень люблю хвостатых, пусть у них всё будет замечательно",
"full_amount": 125000
}
Ответ (200):
{
"comment": "Очень люблю хвостатых, пусть у них всё будет замечательно",
"full_amount": 125000,
"id": 2,
"create_date": "2023-02-13T15:15:16.679223"
}
Эндпоинты для авторизации и управления пользователями реализованы на fastapi-users
.
Если задать в .env
учётные данные сервис-аккаунта Google Cloud Platform, а также почту администратора, то можно будет формировать отчёты в Google Sheets, к которым будет иметь доступ администратор в Google Drive.
GET-запрос .../google
Ответ (200):
"https://docs.google.com/spreadsheets/d/spreadsheet_id"
Проект выполнен в рамках прохождения курса Яндекс.Практикума Даниилом Паутовым.