Skip to content

A Django-based web service providing a CRUD REST API for group money collections

License

Notifications You must be signed in to change notification settings

esfiro4ka/group_fundraise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Веб-сервис для групповых денежных сборов

О проекте

Веб-сервис на базе Django, предоставляющий CRUD REST API для групповых денежных сборов.

Приложение содержит три сущности: Пользователь системы, Платёж для сбора и Групповой денежный сбор.

Групповой сбор содержит: автора сбора, название, обложку, повод, описание, запланированную сумму, собранную сумму, количество донатеров, дату и время завершения сбора, а также ленту сбора (список пожертвований).

При создании Группового сбора или Платежа для сбора на почту автора/донатера приходит письмо с информацией об успешном создании сбора/отправке платежа.

Реализовано кэширование данных, возвращаемых GET эндпоинтом.

Выполнено в рамках тестового задания Backend Python (ProninTeam).

Установка зависимостей для разворачивания проекта локально

  1. Склонируйте репозиторий:
  git clone git@github.com:esfiro4ka/group_fundraise.git
  cd group_fundraise
  1. Перейдите в infra и создайте .env файл:
  cd infra
  touch .env
  1. Заполните по примеру своими значениями: скопируйте этот файл

Запуск

Запустите контейнеры с проектом следующей командой:

  docker compose up -d

Создайте суперюзера командой:

  docker compose exec group-fundraise-web python manage.py createsuperuser

Наполнение БД

Наполните БД моковыми данными:

  docker compose exec group-fundraise-web python manage.py load_mock_data [вставьте количество]

Замените '[вставьте количество]' на необходимое количество моковых данных. Например, команда может выглядеть, как: docker compose exec group-fundraise-web python manage.py load_mock_data 1000.

Выгрузка данных из БД в Google Sheets

Создайте таблицу в Google Sheets.

Выберите существующий проект или создайте новый проект, а также сервисный аккаунт для него в Google Cloud Console.

Запомните значение автоматически присвоенного Идентификатора сервисного аккаунта. После этого создайте ключ в формате JSON и поместите его в папку infra. Откройте файл для редактирования и в поле 'client_email' введите значение Идентификатора.

Перейдите в настройки проекта в Google Cloud Console и включите Google Sheets API.

Выгрузите данные из БД командой в терминале:

  docker compose exec group-fundraise-web python manage.py google_export_data

Документация

Документация сгенерирована автоматически при помощи drf-spectacular. После запуска проекта она будет доступна по ссылкам:

Swagger

Redoc

Автор проекта

Ротбардт Ольга

Releases

No releases published

Packages

No packages published