Skip to content

🐈💸QRKot - это приложение для благотворительного фонда поддержки котиков

Notifications You must be signed in to change notification settings

dasha2000vas/QRkot_spreadsheets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QRkot_spreadseets

QRKot - это приложение для благотворительного фонда поддержки котиков. С его помощью вы можете сделать онлайн-пожертвование, которое пойдет на обеспечение нужд всех видов кошек и котят!

Доступны следующие функции: создание, редактирование, удаление и получение проектов, отправка пожертвований и получение информации о них, регистрация и авторизация пользователей. Также есть возможность вывести информацию о закрытых проектах в google таблицу.


Как скачать и запустить проект:

  1. Клонировать репозиторий и перейти в папку с ним:
git clone git@github.com:dasha2000vas/QRkot_spreadsheets.git
cd QRkot_spreadsheets
  1. Создать и заполнить файл .env:
EMAIL=почта_которой_будет_предоставлен_доступ_к_таблице

Получить JSON-файл с ключом доступа к сервисному аккаунту на Google Cloud Platform. Перенести информацию из этого файла в .env:

TYPE=
PROJECT_ID=
PRIVATE_KEY_ID=
PRIVATE_KEY=
CLIENT_EMAIL=
CLIENT_ID=
AUTH_URI=
TOKEN_URI=
AUTH_PROVIDER_X509_CERT_URL=
CLIENT_X509_CERT_URL=
  1. Создать и активировать виртуальное окружение:
python -m venv venv
source venv/Scripts/activate
  1. Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
  1. Применить миграции для таблиц:
alembic upgrade head
  1. Запустить сервер Uvicorn:
uvicorn app.main:app

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

  1. Эндпоинт: http://127.0.0.1:8000/auth/register. Метод запроса: POST
    Права доступа: доступно без токена

    При передаче следующих данных:

    Вы получите ответ о создании нового пользователя:

    • "id": 1,
    • "email": "user@example.com" (required),
    • "is_active": true,
    • "is_superuser": false,
    • "is_verified": false

  1. Эндпоинт: http://127.0.0.1:8000/users/me. Метод запроса: GET
    Права доступа: авторизованный пользователь

    В ответ вы получите информацию о текущем пользователе:

    • "id": 1,
    • "email": "user@example.com" (required),
    • "is_active": true,
    • "is_superuser": false,
    • "is_verified": false

  1. Эндпоинт: http://127.0.0.1:8000/charity_project. Метод запроса: GET
    Права доступа: доступно без токена

    В ответ вы получите список всех благотворительных проектов.


  1. Эндпоинт: http://127.0.0.1:8000/charity_project. Метод запроса: POST
    Права доступа: администратор

    При передаче следующих данных:

    • "name": "string" (required),
    • "description": "string" (required),
    • "full_amount": 100 (required)

    Вы получите ответ о создании нового благотворительного проекта:

    • "name": "string" (required),
    • "description": "string" (required),
    • "full_amount": 100 (required),
    • "id": 1 (required),
    • "invested_amount": 0 (required),
    • "fully_invested": false (required),
    • "create_date": "2024-03-16T14:15:22Z" (required),
    • "close_date": null

На счет проекта тут же поступят все свободные пожертвования(при их наличии).


  1. Эндпоинт: http://127.0.0.1:8000/donation. Метод запроса: POST
    Права доступа: авторизованный пользователь

    При передаче следующих данных:

    • "full_amount": 100 (required),
    • "comment": "string"

    Вы получите ответ о сделанном пожертвовании:

    • "full_amount": 100 (required),
    • "comment": "string",
    • "id": 1 (required),
    • "create_date": "2024-03-16T14:15:22Z" (required)

Сумма тут же запишется на счёт первого открытого проекта(при его наличии).


  1. Эндпоинт: http://127.0.0.1:8000/donation. Метод запроса: GET
    Права доступа: авторизованный пользователь

В ответ вы получите список всех пожертвований текущего пользователя.


  1. Эндпоинт:http://127.0.0.1:8000/google. Метод запроса: POST
    Права доступа: администратор

В ответ вы получите список закрытых проектов, отсортированных по возрастанию времени сбора средств. О каждом будет представлена следующая информация:

  • "name": "string" (required),
  • "collection_time": "10 days, 10:10:10.10" (required),
  • "description": "string" (required)

Также будет создана google таблица, в которую запишутся все полученные данные. Доступ к файлу будет аккаунта почты, указанного в .env.


Технический стек:

  • aiosqlite0.17.0
  • aiogoogle4.2.0
  • alembic1.7.7
  • fastapi0.78.0
  • fastapi-users[sqlalchemy]10.0.4
  • sqlalchemy1.4.36
  • uvicorn[standard]0.17.6

Автор:


Примечание:

При желании вы можете ближе ознакомиться документацией данного API. Для этого необходимо запустить проект на вашем компьютере и перейти по ссылке http://127.0.0.1:8000/docs

About

🐈💸QRKot - это приложение для благотворительного фонда поддержки котиков

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages