Skip to content

chugunovyar/rostelekom

 
 

Repository files navigation

Сервис по регистрации обращений.

Python 3.10 Django 4....

Нужно указать что только в докере запускается приложение. Либо указать как запускается отдельно брокер очередей ну и прочие связанные с этим вещи.

Данный сервис предназначен для регистрации обращений и представляет собой одностраничный сайт реализованный на Bootstrap. Backend сервиса реализован на базе Django и использует Django REST Framework в качестве интерфейса для API-запросов из браузера к сайту, а так же RabbitMQ в качестве брокера текстовых сообщений. Сам проект упакован в Docker контейнер. В качестве базы данных используется SQLite3.

Установка:

1. Клонируем содержимое проекта себе в рабочую директорию

2. запускаем контейнеры с брокером очередей и web-приложением:

docker-compose up -d

Тестирование

Продукт может быть покрыт тестами, тесты запускаются командой

  python manage.py test

3. После запускаем следующую команду и смотрим, что все контейнеры работают:

docker ps -a

изображение

4. Далее заходим внутрь контейнера с нашим веб приложением:

docker exec -it <ID контейнера> bash

5. Создаем панель администратора внутри контейнера:

python manage.py createsuperuser

6. Запускаем внутри контейнера программу-consumer для отслеживания сообщений в RabbitMQ и записи их в БД:

python manage.py receive

изображение

7. Переходим на http://127.0.0.1:8000/ и вводим обращение в форму:

изображение

8. С помощью Django REST Framework обрабатываем POST запрос и отправляем его в RabbitMQ:

изображение

9. receive.py считывает сообщение и отправляет в БД. Посмотреть обращения можно в панели администратора по адресу http://127.0.0.1:8000/admin/:

изображение

P.S. Если вы хотите иметь доступ к веб-интерфейсу RabbitMQ зайдите внутрь контейнера с rabbitmq по аналогии с шагом №4 и выполните следующую команду, а затем перейдите на http://localhost:15672. По умолчанию логин и пароль для доступа - guest:guest :

rabbitmq-plugins enable rabbitmq_management

Цели проекта

Код написан в тестовых целях на вакансию компании Ростелеком.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 75.3%
  • HTML 23.6%
  • Dockerfile 1.1%