Skip to content

Invictus-7/donate_now

Repository files navigation

Сервис сбора пожертвований DonateNow


1. Общая информация о проекте

Сервис сбора пожертвований DonateNow предоставляет пользователям следующие возможности:

Неавторизованные пользователи:

  • могут зарегистрироваться
  • просматривать все проекты фонда

Зарегистрированные (авторизованные) пользователи:

  • могут делать то же, что и неавторизованные пользователи
  • осуществлять пожертвования на любую сумму и оставлять комментарии к ним
  • просматривать свои пожертвования
  • просматривать и редактировать свой аккаунт

Суперпользователи:

  • могут делать то же, что и обычные пользователи
  • создавать благотворительные проекты, редактировать их и удалять
  • просматривать все пожертвования сделанные в фонд
  • просматривать и редактировать аккаунты всех пользователей

2. База данных и переменные окружения

Проект использует базу данных SQLite.
Для подключения и выполнения запросов к базе данных необходимо создать и заполнить файл ".env" с переменными окружения в корневой папке проекта.
Пример:

APP_TITLE=Сервис сбора пожертвований DonateNow
DESCRIPTION=сервис сбора благотворительных взносов
DATABASE_URL=sqlite+aiosqlite:///./donatenow.db
SECRET=#Здесь напишите Ваш секретный код

3. Команды для запуска

Перед запуском необходимо склонировать проект:

HTTPS: git clone https://github.com/Invictus-7/donate_now

Cоздать и активировать виртуальное окружение:

python -m venv venv
Windows: source venv/Scripts/activate

Обновить pip и установить зависимости из файла requirements.txt:

python3 -m pip install --upgrade pip
pip install -r requirements.txt

Выполнить миграции:

alembic upgrade head

Запустить проект:

uvicorn app.main:app

После запуска проект будет доступен по адресу http://localhost:8000/
Документация по API проекта доступна можно по адресам:


4. Работа с API

В проекте QRКот имеются следующие эндпоинты:

"/charity_project/"
"/charity_project/{project_id}/"
"/donation/"
"/donation/my"
"/auth/jwt/login"
"/auth/jwt/logout"
"/auth/register"
"/users/me"
"/users/{id}"

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

  • Получение всех проектов:
Method: GET
Endpoint: '/charity_project/'
  • Создание благотворительного проекта:
Method: POST
Endpoint: '/charity_project/'
Payload:
{
    "name": "project_1",
    "description": "test project",
    "full_amount": 77077
}
  • Внесение пожертвования:
Method: POST
Endpoint: '/donation/'
Payload:
{
  "full_amount": 55055,
  "comment": "for charity"
}
  • Получить список всех своих пожертвований:
Method: GET
Endpoint: '/donation/my'

5. Использованные технологии


6. Об авторе

About

Charity funds management project

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published