Giter Club home page Giter Club logo

charity_api's Introduction

Python 3.9 & Python 3.10 tests

Charity API 💰

Проект позволяет создавать благотворительные фонды и отправлять нецелевые пожертвования.

Возможности:

  • Создание и управление проектами.

    У каждого проекта есть название, описание и сумма, которую планируется собрать. Все пожертвования идут в проект, открытый раньше других; когда этот проект набирает необходимую сумму и закрывается — пожертвования начинают поступать в следующий проект.

  • Создание и просмотр пожертвований.

    Каждый пользователь может сделать пожертвование. Пожертвования вносятся в фонд, а не в конкретный проект.

  • Создание отчета по закрытым проектам.

    В отчете отображаются закрытые проекты, отсортированные по скорости сбора средств. В ответе передается ссылка на созданную электронную таблицу.

  • Алгоритм распределения пожертвований.

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

  • Права пользователей.

    Целевые проекты создаются администраторами сайта. Любой пользователь может видеть список всех проектов. Зарегистрированные пользователи могут отправлять пожертвования и просматривать список своих пожертвований.

Технологии

  • Static Badge
  • Static Badge
  • Static Badge
  • Static Badge
  • Static Badge
  • Static Badge

Установка

  1. Копируем репозиторий:

    git clone https://github.com/xaer981/Charity_API
    
  2. Создаём и активируем виртуальное окружение:

    Windows
    python -m venv venv
    source venv/Scripts/activate
    pip install -r requirements.txt
    MacOS / Linux
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  3. Устанавливаем зависимости:

    pip install -r requirements.txt
    
  4. Запускаем миграции

    alembic upgrade head
    
  5. Заполняем .env-файл (скопируйте example.env и переименуйте в .env):

    • DATABASE_URL - URL для подключения к базе данных. Можно не менять.

    Следующие два пункта необходимы для формирования отчётов по фондам в google spreadsheets

    • EMAIL - электронная почта пользователя, являющегося администратором в Google Cloud Platform
    • TYPE, PROJECT ID, PROJECT_KEY_ID, PRIVATE_KEY, CLIENT_EMAIL, CLIENT_ID, AUTH_URI, TOKEN_URI, AUTH_PROVIDER_X509_CERT_URL, CLIENT_X509_CERT_URL, UNIVERSE_DOMAIN скопируйте из JSON-файла, полученного в Google Cloud Platform.
  6. Запускаем сервер:

    uvicorn app.main:app
    

Tip

Список запросов и примеры доступны по адресам:

  • http://localhost:8000/docs (Swagger)
  • http://localhost:8000/docs (ReDoc)
  1. Вы великолепны! 🏆

charity_api's People

Contributors

xaer981 avatar

Watchers

 avatar

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.