Это клиент сервеное приложение для диплома, клиент под Android и Java Servlet server. Сервер уже частино написан.
Приложение осуществляет запись клиентов на прием к частному мастеру.
Особенность приложения является возможность "самозаписи". Клиенту посылается линк на запись. Он открывает его и сам выбирает время для записи.
Нужно написать Android клиента, дописать REST сервер. Также необходима пояснительная записка.
На сервере из крупного не хватает PUSH нотификаций. Функционала написанного сервера хватает, чтобы стартовать клиентскую часть.
Можно разделить работу на 2 части по срокам. Относительно срочно нужно приложение, записку можно будет отдать позже. Те можно изменить время исполнения заказа, если приложение будет готово раньше. Или даже оформить на записку отдельный заказ, с отдельной оплатой.
=====================================
Описание Android приложения и JAVA server
=====================================
Это Android приложение для записи клиентов на прием к частному мастеру.
Особенность приложения является возвможность "самозаписи". Клиенту посылается линк на запись. Он открывает его и сам выбирает время для записи.
Функциолнал Android приложения
1 Создать клиента поля уже заложены в базе.
2 Удалить клиента.
3 Записать клиента на прием (из клиенсткого приложения) и выслать (смс whatsup ... share link) уведомление клиенту
4 Создать и выслать приглашение на самозапись по (смс, whatsup ... share link) День выбирает мастер, сервер формирует линк на запись, который потом отсылается клиенту. TTL 2 дня. Клиент открывает линк и видит веб страницу с приглашением на запись (С именем клиента). На странице клиент выбирает время на запись. Мастеру приходит push fcm нотификация о выбранном времени.
5 Удалить запись на прием и выслать (смс whatsup ... share link) об этом
6 Просмотр записи на прием (разный показ прошедших и тех что еще будут) на клиенте
7 Получение и показ пуш нотификаций с открытием приложения и переходом на запись
8 Диалог разрешения конфликтов по времени записи (самозапись и запись с приложения)
Самозапись происходит с сервера через js, через страничку с отсылкой пуш нотифиткации.
Сейчас реализован вариант с датой и временем. Нужно упростить. Выбора времени достаточно, дату указывает мастер.
-- Use cases --
-- Самозапись клиента на прием --
Мастер выбирает клиента и создает через сервер приглашение на запись
Мастер высылает приглашение на запись и посылает ссылку на приглашение клиенту через смс.
Клиент переходит по ссылке из смс и проставляет время визита к мастеру на веб сранице.
Если клиент переходит по ссылке из смс, по которой он ранее создавал запись то -
1) Если запись уже была сделана Клиент видит свою запись на web страничке.
2) Ссылки с истекщим временем
Клиент переходит по ссылке из смс
Клиент видит надпись ваша ссылка устарела, приглашение на запись действительно только 2 дня
Ссылка на сервер
Описание таблиц в базе (текущее, можно менять по согласованию)
ApplicationId уникальное id мастера (можно сделать его уникальным для установленной апликации или еще как то привязать его к телефону с установленной программой)
CREATE DATABASE enroll_me;
use enroll_me;
DROP TABLE IF EXISTS clients;
CREATE TABLE clients (
ID INT NOT NULL AUTO_INCREMENT,
ApplicationId VARCHAR(36) NOT NULL,
Name VARCHAR(191) NOT NULL,
Phone VARCHAR(191),
SocialMedia VARCHAR(1024),
Location VARCHAR(191),
PRIMARY KEY (ID),
INDEX application_id (ApplicationId)
) CHARACTER SET utf8mb4;
DROP TABLE IF EXISTS meetings;
CREATE TABLE meetings (
ApplicationId VARCHAR(36) NOT NULL,
UserId INT NOT NULL,
MeetupDate DATETIME,
CreateDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
ID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (ID),
INDEX application_id (ApplicationId)
) CHARACTER SET utf8mb4;