Приложение работает под управлением php 8.2 с MySql 8 версии, создано на основе фреймворка laravel 10 версии.
При повышенной нагрузке используется инструменты репликации БД, а также асинхронная модель запуска очередей, для различных автоматизаций.
Используется сертификат ssl.
Пройдены все UNIT тесты. Каждый запрос подписывается CSRF токеном который проверяется при получении запроса.
В клиентской части расположен модуль авторизации, который позволяет авторизоваться пользователям используя смс аутентификацию, а также личный кабинет пользователя, со следующим функционалом:
- возможность отписаться от получения смс уведомлений, и заполнить заявление на возврат денежных средств за услугу смс уведомлений.
- При оформлении заявления автоматически создается pdf файл подписанный ПЭП -подпись подтверждается путем направление смс уведомления на телефонный номер клиента. Копия данного заявления приходит на почту клиенту указанную при оформлении заявления.
- Добавление пользователей в систему происходит по зашифрованному каналу связи, или непосредственно в административной части приложения.
Административная часть представляет собой закрытый за авторизацией сегмент приложения, причем данные об администраторах и управления правами доступа хранится в отдельной таблице, что исключает клиенту каким либо образом повысить привелегии в своем личном кабинете и получить доступ к административной части сайта.
Администратор может просматривать и редактировать записи о клиентах, контролировать внутренние автоматизации системы, наблюдать за нагрузкой сервера.
Основной функционал приложения представляет собой защищенное хранение данных, отправку смс уведомлений клиентам купившим данную услугу и возможность отписаться от уведомлений сформировав заявление.
Также присутствует ряд автоматизаций, которые:
- отслеживают даты платежей,
- запуск рассылки,
- исключения клиентского номера из рассылки.
Приложение посредством REST API разработанной компанией ООО "Девино Телеком" осуществляет отправку смс уведомлений для подтверждения действий, авторизации и ежедневных рассылок.
Для приложения разработано свое REST API по которому разработчики сторонних систем используя описанные в документации методы могут обращаться к различным импоинтам и взаимодействовать с системой.
Доступ к API ограничен ключем и определение IP адреса сервера, с которого будет направляться запрос на взаимодействие.
Все возможные ошибки логируются, каждым модулем системы, для устранения багов.
Автоматическое резервное копирование, создает зашифрованные копии базы данных клиентов исключительно для внештатных ситуаций и предотвращения потери данных, копии ежедневно перезаписываются, а старые версии безвозвратно удаляются.
Также используется кэширование запросов для ускорения выборки из базы данных, кэшированные запросы используют асинхронное шифрование с открытым ключом, для генерации общего секретного ключа и аутентификации.