Skip to content

Web-app service for calculating the cost of advertising on radio stations

License

Notifications You must be signed in to change notification settings

mityasun/ekb-radio-calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ekb-radio-calculator - web-сайт калькулятор расчета стоимости размещения рекламы на радиостанциях.


Возможности проекта:

  • Выбор городов для размещения рекламы на радио.
  • Выбор радиостанций на основе выбранного города.
  • Отображение данных по выбранной радиостанции: лого, описание, числовые показатели и т.д.
  • Калькулятор для расчета стоимости размещения рекламы на выбранной радиостанции с возможностью выбора различных параметров:
    • Селекторы и свитчеры для выбора необходимых параметров размещения.
    • Интерактивная таблица с возможностью бронирования рекламных мест.
    • Автоматический расчет стоимости рекламного размещения.
    • Формирование медиаплана в формате pdf для скачивания.
    • Отправка заявки с последующим уведомление в телеграм группу и на почту.
  • Админ панель с возможностью редактирования данных радиостанций, справочников, системных данных и т.д.
  • Импорт данных в базу данных с помощью Excel файла.

web-service


Технологии

Backend:

Python Django Django REST PostGres Redis Nginx

Frontend:

REACT REACT-QUERY AXIOS REACT-HOOK-FORM ZUSTAND


Документация интерфейса backend API по ссылке

Ссылка откроется после развертывания проекта.


Как запустить проект локально с помощью Doker compose:

Клонировать репозиторий и перейти в него в терминале:

git clone https://github.com/mityasun/ekb-radio-calculator.git

Перейдите в директорию с файлом docker compose:

cd ekb-radio-calculator/infra/

Создать файл .env в этой директории пропишите в нем:

SECRET_KEY=Секретный ключ Django
ALLOWED_HOSTS=Список разрешенных хостов backend приложения
CSRF_TRUSTED_ORIGINS=Список разрешенных хостов для CSRF
CORS_ALLOWED_ORIGINS=Список разрешенных хостов для CORS
BOT_TOKEN=Токен телеграм бота для отправки заказов
CHAT_ID=id чата в телеграмм для отправки заказов (бот должен быть добавлен в чат)
NGINX_PORT=Порт Nginx
BACKEND_PORT=Порт backend приложения
REDIS_PORT=Порт Redis
REDIS_PASSWORD=Пароль для Redis
PG_ADMIN_PORT=Порт pgAdmin
PGADMIN_DEFAULT_EMAIL=Логин для входа в pgAdmin
PGADMIN_DEFAULT_PASSWORD=Пароль для входа в pgAdmin
DB_ENGINE=django.db.backends.postgresql
POSTGRES_DB=Название базы данных 
POSTGRES_USER=Имя пользователя БД
POSTGRES_PASSWORD=Пароль пользователя БД
DB_HOST=postgres (название в соответствии с названием сервиса в docker compose)
DB_PORT=Порт базы данных
EMAIL_HOST=SMTP сервер для отправки email уведомлений
EMAIL_HOST_USER=Учетная запись на SMTP сервере (email адрес)
EMAIL_HOST_PASSWORD=Пароль от учетной записи на SMTP сервере
EMAIL_PORT=Порт SMTP сервера (25/465/567)
DEFAULT_FROM_EMAIL=Адрес email, с которого отправляется заказ
ORDER_TO_EMAIL=Адрес email для отправки заказов

Создать файл .redis в этой директории пропишите в нем:

port 123456 (Порт Redis)
bind redis
requirepass 12345 (Пароль Redis)

Запустите образы из файла docker compose:

docker-compose -f docker-compose.dev.yml up -d --build

Примените миграции:

docker-compose -f docker-compose.dev.yml exec backend python manage.py migrate

Соберите статику:

docker-compose -f docker-compose.dev.yml exec backend python manage.py collectstatic --no-input

Создайте суперпользователя:

docker-compose -f docker-compose.dev.yml exec backend python manage.py createsuperuser

Перейдите на сайт или в админ панель


Заполнение базы данных из Excel файла:

В админ панели перейдите в раздел:
Настройки - Импорт данных - Добавить импорт данных и загрузите Excel файл, который должен соответствовать структуре файла примера:

cd ekb-radio-calculator/backend/media/sample/import-sample.xlsx

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

Backend: Петухов Артем Github
Frontend: Николай Github