Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rxyalxrd/qrkot_spreadsheets
API для благотворительного фонда QRKot с возможность создавать отчеты, используя google cloud platform.
https://github.com/rxyalxrd/qrkot_spreadsheets
aiogoogle alembic fastapi python3 sqlalchemy uvicorn
Last synced: 7 days ago
JSON representation
API для благотворительного фонда QRKot с возможность создавать отчеты, используя google cloud platform.
- Host: GitHub
- URL: https://github.com/rxyalxrd/qrkot_spreadsheets
- Owner: Rxyalxrd
- Created: 2024-08-14T13:58:47.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-23T11:31:51.000Z (5 months ago)
- Last Synced: 2024-11-17T03:13:46.845Z (2 months ago)
- Topics: aiogoogle, alembic, fastapi, python3, sqlalchemy, uvicorn
- Language: Python
- Homepage:
- Size: 50.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API для благотворительного фонда QRKot с возможность создавать отчеты, используя google cloud platform.
----------------------------------------
## ОписаниеДанный сервис создан для поддержки хвостатых. Пользователи могут внести пожертвование,
сопроводив его комментарием или пожеланием. Администраторы сервиса создают проекты в помощь
приютам для животных и другим заинтересованным. Проекты не целевые: распределение средств
происходит автоматически в порядке создания проектов.----------------------------------------
## Используемые технологии- Python 3.11
- FastAPI (веб-фреймворк для создания API)
- SQLAlchemy (библиотека для работы с реляционными СУБД с применением технологии ORM)
- Pydantic (библиотека для валидации и сериализации данных)
- Alembic (инструмент для миграции базы данных)
- Uvicorn (высокопроизводительный ASGI сервер)
- Aiogoogle (google cloud platform)
----------------------------------------
## Установка1. Клонируйте репозиторий
```bash
git clone https://github.com/Rxyalxrd/QRkot_spreadsheets.git
```2. Создайте и активируйте виртуальное окружение
```bash
python3 -m venv env
```* Если у вас Linux/macOS
```bash
source env/bin/activate
```* Если у вас windows
```bash
source env/scripts/activate
```3. Обновите pip до последней версии
```bash
python3 -m pip install --upgrade pip
```4. Установите зависимости из файла requirements.txt
* Если используете venv
```bash
pip install -r requirements.txt
```* Если используете poetry
```bash
poetry add $(cat requirements.txt)
```----------------------------------------
## ЗапускВ директории проекта создайте файл .env и заполните его по образцу
.env.exampleПримените миграции
```bash
alembic upgrade head
```Запустите проект
```bash
uvicorn app.main:app --reload
```Для того чтобы открыть документацию проекта, перейдите по ссылке http://127.0.0.1:8000/docs/ после запуска проекта.
----------------------------------------
## API
Данный сервис является API, так что может быть интегрирован в вашу систему.### Формат запроса
Запрос осуществляется посредством протокола HTTP 1.1.### Формат ответа
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8,
содержимое зависит от запроса.### Ресурсы
QRKot имеет следующте ресурсы: Проекты, Пожертвования, Пользователи и Формирование отчетов.
Работа с пользователями осуществляется с помощью стандартного модуля FastAPI Users.Список проектов может быть просмотрен любым пользователем сервиса. Создание, редактирование
и удаление проектов доступно только суперпользователям.Пожертвование может сделать любой пользователь. Также он может посмотреть список
своих пожертвований. Суперпользователь может посмотреть список всех пожертвований.Отчеты формируются по закрытым благотворительным проектам. Создавать может только суперюзер.
Для регистрации выполните POST запрос на http://127.0.0.1:8000/auth/register:
```bash
curl -X 'POST' \
'http://127.0.0.1:8000/auth/register' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"email": "[email protected]",
"password": "your_password"
}'
```Для аутентификации и получения токена выполните POST запрос на http://127.0.0.1:8000/auth/jwt/login:
```bash
curl -X 'POST' \
'http://127.0.0.1:8000/auth/jwt/login' \
-H 'accept: application/json' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=&username=username&password=password&scope=&client_id=&client_secret='
```Пример ответа в случае успешного выполнения:
```json
{
"access_token": "token",
"token_type": "bearer"
}
```Далее используйте этот токен при остальных запросах к сервису - передавайте его в заголовках запросов.
**Пример**
Для создания нового пожертвования выполните POST запрос на http://127.0.0.1:8000/donation/,
пример которого ниже:
```bash
curl -X 'POST' \
'http://127.0.0.1:8000/donation/' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"comment": "От всей души",
"full_amount": 450
}'
```Пример ответа в случае успешного выполнения
_HTTP 1.1 200 OK_
```json
{
"comment": "От всей души",
"full_amount": 450,
"id": 2,
"create_date": "2023-07-22T03:21:26.369602"
}
```----------------------------------------
## Автор проекта
[Максим Цареградцев](https://github.com/Rxyalxrd)