QRKot - это приложение для благотворительного фонда поддержки котиков. С его помощью вы можете сделать онлайн-пожертвование, которое пойдет на обеспечение нужд всех видов кошек и котят!
Доступны следующие функции: создание, редактирование, удаление и получение проектов, отправка пожертвований и получение информации о них, регистрация и авторизация пользователей. Также есть возможность вывести информацию о закрытых проектах в google таблицу.
- Клонировать репозиторий и перейти в папку с ним:
git clone git@github.com:dasha2000vas/QRkot_spreadsheets.git
cd QRkot_spreadsheets
- Создать и заполнить файл .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=
- Создать и активировать виртуальное окружение:
python -m venv venv
source venv/Scripts/activate
- Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
- Применить миграции для таблиц:
alembic upgrade head
- Запустить сервер Uvicorn:
uvicorn app.main:app
-
Эндпоинт: http://127.0.0.1:8000/auth/register. Метод запроса: POST
Права доступа: доступно без токенаПри передаче следующих данных:
- "email": "user@example.com" (required),
- "password": "string" (required)
Вы получите ответ о создании нового пользователя:
- "id": 1,
- "email": "user@example.com" (required),
- "is_active": true,
- "is_superuser": false,
- "is_verified": false
-
Эндпоинт: 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
-
Эндпоинт: http://127.0.0.1:8000/charity_project. Метод запроса: GET
Права доступа: доступно без токенаВ ответ вы получите список всех благотворительных проектов.
-
Эндпоинт: 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
На счет проекта тут же поступят все свободные пожертвования(при их наличии).
-
Эндпоинт: 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)
Сумма тут же запишется на счёт первого открытого проекта(при его наличии).
- Эндпоинт: http://127.0.0.1:8000/donation. Метод запроса: GET
Права доступа: авторизованный пользователь
В ответ вы получите список всех пожертвований текущего пользователя.
- Эндпоинт: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
- Василевская Дарья
- GitHub: https://github.com/dasha2000vas
- Телеграм: https://t.me/vasdascha
- Почта: vasilevsckaya.dascha@yandex.ru
При желании вы можете ближе ознакомиться документацией данного API. Для этого необходимо запустить проект на вашем компьютере и перейти по ссылке http://127.0.0.1:8000/docs