Приложение отправит СМС на нужный номер, в назначенное время, с возможностью нескольких повторов (до 10) через установленный интервал в минутах (шаг 0,5 мин). Программа создана в рамках курсового проекта, поэтому в реализации используются:
- Maven
- WebSockets
- Servlets
- Фильтры, "мэппинг" как контроль доступа к ресурсам
- JSP, JSTL, HTML и пр.
- HttpSession для проверки авторизации
- Многопоточность (асинхронная)
- JavaScript
- реализация некоторых паттернов программирования: синглтон, фабрика.
- и другой функционал согласно программе обучения...
Хранение данных организовано внутренней базой данных, она в свою очередь, в файлах, сереализованных JSON. /main/java/classes/DataBaseDir/
Сервер отправки сообщений, реализован как Android приложение, которое имеет свой внешний IP-адрес, и про получении шифрованного Base64 запроса, отправляет СМС через аппаратуру смартфона. /код не представлен/
Большинство сервлеты и фильтры обеспечивают, всю необходимую работы интерфейса. Для реализации некоторых функций, таких как: проверка вводимых паролей на соответствие требованиям, нотификация и дешифровка, — использован JavaScript.
Отдельный класс SMScore, обеспечивает формирования “расписания” сообщений, и их отправку, реализован как синглтон с непрерывным таймером, который:
- каждые 10 секунд проверяет и каждую минуту актуализирует “расписание”,
- проверяет лимиты сообщений по юзеру по сервису,
- отправляет подходящие по времени напоминания, запросом на СМС сервер
- формирует отчет по отправке и сохраняет историю.
-
Loger - синглтон через enum, записывает 2 лог файла, по действиям и по авторизациям
-
Setup - сервлет, создает системные папки на сервере размещения
-
Verificator - сервлет, генерирует ссылку для восстановления пароля, хранить информация и проверяет валидность запроса,
-
Emailer - класс отправляющий е-мейлы пользователям
-
Archiver - класс которых, архивирует файлы истории удаленных пользователей и сохраняет zip-архив
-
! В программе указан путь (в классах DataBase, Verificator) для воccтановление с учетом размещения на хостинге ("https://timet.mircloud.ru/")
-
! В сборку вклечены база данных - папка "consult_db",
создано два пользователя, пароль у обоих "qw12QW!@":- user@gmail.com - просто пользователь
- admin@gmail.com - администратор
-
! Если нет истории по событиям, то сначала в фрейме будет отображаться, что страница не найдена,
после первой записи - создасться файл и будет отображаться корректно. -
! В Emailer используются настройки моего личного почтового сервиса.