Веб-приложение для рассылки SMS по базе номеров и отслеживания их доставки.
- Скачайте код
- Запустите docker-compose up
- Откройте в браузере файл http://127.0.0.1:5000
Для того чтобы отправлять реальные смс, нужно запускать сервер с параметром --wet_run
, а также прописать LOGIN
и PASSWORD
от smsc.ru в файл .env
.
При нажатии кнопки "Отправить" фронтенд шлёт POST запрос на адрес /send/
. Текст из поля для ввода будет в POST-параметре text
. В ответ от сервера ожидается JSON. Если в ответе будет ключ errorMessage
, то пользователь увидит его в виде всплывающего сообщения. Пример ответа сервера с текстом ошибки:
{
"errorMessage": "Потеряно соединение с SMSC.ru"
}
Через вебсокет приложение получает информацию о прогрессе рассылки: сколько адресатов уже получили SMS и сколько должны будут получить в будущем. Вебсокет работает на 5000 порту.
Фронтенд ожидает получить от сервера JSON сообщение с информацией о рассылках:
{
"msgType": "SMSMailingStatus",
"SMSMailings": [
{
"timestamp": 1123131392.734,
"SMSText": "Сегодня гроза! Будьте осторожны!",
"mailingId": "1",
"totalSMSAmount": 345,
"deliveredSMSAmount": 47,
"failedSMSAmount": 5,
},
{
"timestamp": 1323141112.924422,
"SMSText": "Новогодняя акция!!! Приходи в магазин и получи скидку!!!",
"mailingId": "new-year",
"totalSMSAmount": 3993,
"deliveredSMSAmount": 801,
"failedSMSAmount": 0,
},
]
}
Фронтенд накапливает данные о SMS рассылках. Если у вас есть 3 SMS рассылки, а вебсокет получит обновления только по двум, то третья со страницы не пропадёт.
Код написан в учебных целях — это урок в курсе по Python и веб-разработке на сайте Devman.