Giter VIP home page Giter VIP logo

ekb-radio-calculator's Introduction

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

ekb-radio-calculator's People

Contributors

nickoff avatar mityasun avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.