Giter Site home page Giter Site logo

qrkot_spreadsheets's Introduction

Приложение для Благотворительного фонда поддержки котиков QRKot.

Описание

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

Возможности

  • Создание благотворительных целевых проектов (администратором сайта)
  • Создание пожертвований (любым пользователем)
  • Pабота с api
  • Формирование отчета в гугл-таблице с проектами, отсортированными по скорости сбора средств

Технологии

  • Python 3.9
  • Фреймворк FastAPI
  • SQLAlchemy
  • Alembic
  • Pydantic
  • Asyncio
  • Google Cloud Platform
  • Google Sheets Api
  • Googla Drive Api

Запуск проекта

  • Клонируйте репозитоий
git clone https://github.com/ZebraHr/QRkot_spreadsheets
  • Установите и активируйте виртуальное окружение
python3 -m venv venv
source venv/Scripts/activate
python3 -m pip install --upgrade pip
  • Установите зависимости из файла requirements.txt
pip install -r requirements.txt
  • в корневой папке проекта создайте файл .env со следующим содержимым:
APP_TITLE=<Ваш вариант названия проекта>
PROJECT_DESCRIPTION=<Ваш вариант описания проекта>
DATABASE_URL=sqlite+aiosqlite:///./fastapi.db
SECRET=<Ваш вариант серкретного ключа>
FIRST_SUPERUSER_EMAIL=<e-mail для автоматического создания суперюзера>
FIRST_SUPERUSER_PASSWORD=<пароль для автоматического создания суперюзера>

Данные, получаемые после настройки Google Cloud:
EMAIL=<ваш e-mail гугл-аккаунта>
TYPE=service_account
PROJECT_ID=<идентификатор>
PRIVATE_KEY_ID=<id приватного ключа>
PRIVATE_KEY=-----BEGIN PRIVATE KEY-----<приватный ключ>-----END PRIVATE KEY-----\n
CLIENT_EMAIL=<email сервисного аккаунта>
CLIENT_ID=<id сервисного аккаунта>
AUTH_URI=https://accounts.google.com/o/oauth2/auth
TOKEN_URI=https://oauth2.googleapis.com/token
AUTH_PROVIDER_X509_CERT_URL=https://www.googleapis.com/oauth2/v1/certs
CLIENT_X509_CERT_URL=https:<ваша ссылка на местоположение общедоступных сертификатов (X.509) публичных ключей для сервисных аккаунтов Google в формате JSON Web Key (JWK), которые используются для аутентификации>
UNIVERSE_DOMAIN=googleapis.com
  • создайте базу данных, применив миграции (из корневой папки проекта)
alembic upgrade head
  • запустите проект локально (из корневой папки проекта)
uvicorn app.main:app --reload
  • описание эндпоинтов и возможностей доступно по этим ссылкам Swagger или Redoc

Примеры команд для работы с api

Пример POST-запроса для создания благотворительного проекта:

POST ... http://127.0.0.1:8000/charity_project/
{
"name": "string",
"description": "string",
"full_amount": 0
}

Пример ответа:

{
"name": "string",
"description": "string",
"full_amount": 0,
"id": 0,
"invested_amount": 0,
"fully_invested": true,
"create_date": "2019-08-24T14:15:22Z",
"close_date": "2019-08-24T14:15:22Z"
}

Пример POST-запроса для совершения пожертвования:

POST ... http://127.0.0.1:8000/donation/
{
"full_amount": 0,
"comment": "string"
}

Пример ответа:

{
"full_amount": 0,
"comment": "string",
"id": 0,
"create_date": "2019-08-24T14:15:22Z"
}

Пример GET-запроса для получения списка всех пожертвований:

GET ... http://127.0.0.1:8000/donation/

Пример ответа:

[
  {
    "full_amount": 0,
    "comment": "string",
    "id": 0,
    "create_date": "2019-08-24T14:15:22Z",
    "user_id": "string",
    "invested_amount": 0,
    "fully_invested": true,
    "close_date": "2019-08-24T14:15:22Z"
  }
]

Пример POST-запроса для формирования отчета:

POST ... http://127.0.0.1:8000/google/

На ваш e-mail гугл-аккаунта придет ссылка на сформирвоанный отчет

Автор

qrkot_spreadsheets's People

Contributors

zebrahr avatar

Stargazers

Konstantin Steblev avatar Alex Ten avatar

Watchers

 avatar

qrkot_spreadsheets's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.