4. Работа с API
6. Об авторе
Сервис сбора пожертвований DonateNow предоставляет пользователям следующие возможности:
- могут зарегистрироваться
- просматривать все проекты фонда
- могут делать то же, что и неавторизованные пользователи
- осуществлять пожертвования на любую сумму и оставлять комментарии к ним
- просматривать свои пожертвования
- просматривать и редактировать свой аккаунт
- могут делать то же, что и обычные пользователи
- создавать благотворительные проекты, редактировать их и удалять
- просматривать все пожертвования сделанные в фонд
- просматривать и редактировать аккаунты всех пользователей
Проект использует базу данных SQLite.
Для подключения и выполнения запросов к базе данных необходимо создать и заполнить файл ".env" с переменными окружения в корневой папке проекта.
Пример:
APP_TITLE=Сервис сбора пожертвований DonateNow
DESCRIPTION=сервис сбора благотворительных взносов
DATABASE_URL=sqlite+aiosqlite:///./donatenow.db
SECRET=#Здесь напишите Ваш секретный код
Перед запуском необходимо склонировать проект:
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 проекта доступна можно по адресам:
- Swagger: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
"/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'