Skip to content

Plutarxi99/collecting_money

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Collect money

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

Данный проект содержит в себе 3 приложения:
  • collect
    • позволяет работать с групповыми сборами:
      • в ней переопределен метод save с установкой значений в поля amount_now and count_people
      • имеет класс для выбора причины сбора Reason
      • имеет celery задачу на отправку письма при успешном создании сбора
      • все get запросы обложены кэшем
      • имеет команду наполнения моко данными addcol
  • payment
    • позволяет работать с платежами
      • создаёт платежи и привязывает по связи M2M с полем donates с таблицей Collect
      • создана celery задача на отправку письма и надобалвении платежа и обработка платежа
      • имеет команду наполнения моко данными addpay
  • users
    • служит для аунтификации пользователя и регистрации пользователя, а также получения токена
      • имеет команду наполнения моко данными adduser
Что делает приложение? Функционал:
  • Регистрация пользователя, получение токена и использование в запросах bearer token
  • Создание группового платежа и отправка письма о его создании с таким содержанием Screenshot from 2024-04-04 00-40-23
  • Платеж с получением письма о состояние платежа с таким содержанием Screenshot from 2024-04-04 00-41-24
  • CRUD обложен на групповые сборы, а также ваиладация на актуальную дату времени и права на удаление и обновление только своих сборов

Important

Добавлен файл env-sample (для использования надо привести к ввиду <.env>) с помощью, которого можно настроить работу проекта. В нем лежат настройки (далее идут примеры заполнения полей):

Настройки, которые надо установить для работы приложения
Значение Содержание Примечание
SECRET_KEY django-insecure-hu213gr51uh234gbrtf34oqufg35835g3q5g код генерируется командой описаной ниже
POSTGRES_DB NAME_BD название базы данных
POSTGRES_USER USER_BD название пользователя базы данных
POSTGRES_PASSWORD PASSWORD_BD пароль базы данных
POSTGRES_HOST HOST_BD название твоего сервиса используемый для контейнеризации
SUPERUSER_EMAIL email_superuser установить почту суперюзера
SUPERUSER_PASSWORD password_superuser установить пароль суперюзера
USER_PASSWORD password_user установить пароль юзера для моко данных
ENV_TYPE local/server для использования разных настроек для запуска локально-local для запуска с сервера-server
HOST_IP db id- адрес твоего сервера базы данных
EMAIL_HOST_USER <Твой почтовый адрес> от кого придет почта
EMAIL_HOST_PASSWORD qweq223e123edqwr пароль полученный в настройках приложения для почтового сервиса P.S. Далее идет инструкция в картинках
EMAIL_BACKEND django.core.mail.backends.smtp.EmailBackend Настройка для джанго
EMAIL_PORT 465 почтовый порт
EMAIL_HOST
smtp.yandex.ru
почтовый сервер, в моем случае это яндекс
EMAIL_USE_SSL True дефолтные настройки для почтового сервиса в моем случае это яндекс
CELERY_BROKER_URL
redis://127.0.0.1:6379
база данных для работы celery
CELERY_RESULT_BACKEND
redis://127.0.0.1:6379
база данных для работы celery
CACHE_LOCATION redis://127.0.0.1:6379 подключение к бд редис, если это в докере, то он строится иначе и уже прописан
Как запустить?
  • Переходим в папку где будет лежать код

  • Копируем код с git:

    git@github.com:Plutarxi99/collecting_money.git
  • Создаем виртуальное окружение:

    python3 -m venv env
    source env/bin/activate
  • Создать секретный ключ:

    openssl rand -hex 32
  • Вставить его в .env

  • Создать базу данных:

    psql -U postgres
    create database name_your_db;
  • После установки нужных настроук в файле <.env>. Надо выполнить команду для установки пакетов:

    pip install -r requirements.txt 
  • Применить миграции:

    python3 manage.py migrate
  • Создать суперюзера:

    python3 manage.py ccsu
  • Создать пользователей системы (P.S можно использовать любой число, есть и другие параметры, смотри в докстринги) смотри код :

    python3 manage.py adduser 10
  • Создать групповые сборы (P.S можно использовать любой число):

    python3 manage.py addcol 10
  • Создать платежи (P.S можно использовать любой число):

    python3 manage.py addpay 10
  • Для запуска работы celery worker:

    python3 manage.py celery_worker

    или использовать иную команду дефолтную

    python -m celery -A django worker -l infor
Что использовалось в приложение? Функционал:
  • Подключено rest_framework для использоваеть API приложения
  • Подключено rest_framework_simplejwt для использоваеть API приложения авторизации пользователя Bearer token
  • Подключено drf_yasg для создания автоматической документации и возможность работать в браузере с приложением
  • Подключена django_celery для создание и использование отложенной задачи
Как получить пароль почтового сервиса? Функционал:
  • Создать приложение по ссылке и создать приложение <<Почта>> и получить пароль: https://id.yandex.ru/security/app-passwords Screenshot from 2024-03-25 15-08-40

  • Скопировать пароль в .env файл оставльные настройка уже готовы.

Как запустить приложение в docker? Функционал:
  • Выполняем код:

    docker-compose build
    docker-compose up
  • Создаем базу данных в контейнере:

    docker-compose exec db psql -U postgres
    create database your_name_db
  • Подключаемся к контейнеру:

    http://127.0.0.1:8080/swagger/
Как использовать приложение в swagger? Функционал:
  • Запускаем приложение с такими настройками в Pycharm: Screenshot from 2024-04-04 11-45-51

  • Или запускаем командой из терминала:

    python3 manage.py runserver
  • Переходим по ссылке: swagger

  • Создаем пользователя: Screenshot from 2024-04-04 11-47-49

  • Идём в авторизацию: Screenshot from 2024-04-04 11-49-08

  • Получаем ответ и копируем acesss token: Screenshot from 2024-04-04 11-49-52

  • Добавляем к запросам этот токен(P.S. Объязательно добавлять к вашему токену слово Bearer): Screenshot from 2024-04-04 11-57-06 Screenshot from 2024-04-04 11-57-37

  • Используем дальше эндпоинты

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors