Разработка React JS приложения для игры Дозор в студенческом лагере
8 000 руб. за проект
Механика игры:
Командам необходимо пройти все точки созданные в игре, разгадать загадки и набрать максимальное количество очков за правильно введенные коды. Все точки в игре идут друг за другом и автоматически переключаются АПИ приложения.
Каждый игрок подключается к игре по отдельности и связан со своей командой, все очки полученные игроком зачисляются на счет команды
Каждая точка характеризуется параметрами:
Описание доступного АПИ Выдам доступ к апи методам позже, документация реализована через swagger
Подключение пользователя к игре
https://solbaumanec.ru/dozor/connect
Перед подключением сервис потребует пройти авторизацию, логин с паролем выдам позже
После авторизации токен доступа хранится внутри cookie
Для управления статусами игры необходимо пользоваться эндроитом
https://solbaumanec.ru/dozor/admin/game/setStatus
Игра с административной точки зрения делится на 3 статуса:
https://solbaumanec.ru/dozor/code/save
После введения кода всем игрокам команды придет сообщение через web socket
/dozor/directlyTeam/{teamName}
Пример подключения и работы web socket можно посмотреть тут
https://solbaumanec.ru/test/socket
Переводите игру по статусам и socket будет отображаться сообщения
Макет страницы https://www.figma.com/file/FaNJH59JqOy0WRlyhvA8yM/DOZOR?node-id=0%3A1
Данные получаемые через web socket
Типы данных получаемых через web socket:
PRE_START_TIME - время до ориентировочного старта игры
{"message":"action","responseType":"PRE_START_TIME","object":"9:42:41"}
ROUND_TIME - время раунда для команды
TRANSIT_TIME - время перехода команды к точке
DOZOR_DATA - информация об игре, придет текущая точка для команды или изменение ее статуса
В случае если игра перешла в статус WAITING_ACTIVE прийдет сообщение
{"message":"action","responseType":"DOZOR_DATA","object":{"id":2,"type":"DOZOR","dozorPointSet":[],"status":"WAITING_ACTIVE","sequenceOfPassingGame":1,"dozorSequenceOfPassingGameSet":[],"estimatedStartTime":"2022-08-01T18:00:00.000+0000","smenaId":1}}
В случае если игра перешла в статус ACTIVE то при начале времени перехода прийдет сообщение в канал команды
{"message":"action","responseType":"DOZOR_DATA","object":{"id":2,"type":"DOZOR","dozorPointSet":[],"status":"WAITING_ACTIVE","sequenceOfPassingGame":1,"dozorSequenceOfPassingGameSet":[],"estimatedStartTime":"2022-08-01T18:00:00.000+0000","smenaId":1}}
ENTERED_CODE - введенный код одним из участников команды
MESSAGE - нотификация для пользователей команды или для всех пользователей(должна отобразится нотификация в верхней части окна)
{"message":"action","responseType":"MESSAGE","object":"Тестовое сообщение"}
Командам необходимо пройти все точки созданные в игре, разгадать загадки и набрать максимальное количество очков за правильно введенные коды. Все точки в игре идут друг за другом и автоматически переключаются АПИ приложения.
Каждый игрок подключается к игре по отдельности и связан со своей командой, все очки полученные игроком зачисляются на счет команды
Каждая точка характеризуется параметрами:
- Подсказка при переходе на точку(указывает куда дальше идти команде)
- Подсказка на точке(указывает какие коды верные, их необходимо ввести в поле ввода)
- Коды правильных ответов
Описание доступного АПИ Выдам доступ к апи методам позже, документация реализована через swagger
Подключение пользователя к игре
https://solbaumanec.ru/dozor/connect
Перед подключением сервис потребует пройти авторизацию, логин с паролем выдам позже
После авторизации токен доступа хранится внутри cookie
Для управления статусами игры необходимо пользоваться эндроитом
https://solbaumanec.ru/dozor/admin/game/setStatus
Игра с административной точки зрения делится на 3 статуса:
- DEVELOP - заведение точек, подсказок, вопросов и т.д (тестовые данные уже заведены в систему)
- WAITING_ACTIVE - игра готова к старту, на этом моменте пользователю отображается таймер до начала игры(Стартовая страница). Время до начала игры приходит через webSocket /dozor/action
- ACTIVE - игра активна, переключению раундов и движение команд идет по заведенному сценарию
https://solbaumanec.ru/dozor/code/save
После введения кода всем игрокам команды придет сообщение через web socket
/dozor/directlyTeam/{teamName}
Пример подключения и работы web socket можно посмотреть тут
https://solbaumanec.ru/test/socket
Переводите игру по статусам и socket будет отображаться сообщения
Макет страницы https://www.figma.com/file/FaNJH59JqOy0WRlyhvA8yM/DOZOR?node-id=0%3A1
Данные получаемые через web socket
Типы данных получаемых через web socket:
PRE_START_TIME - время до ориентировочного старта игры
{"message":"action","responseType":"PRE_START_TIME","object":"9:42:41"}
ROUND_TIME - время раунда для команды
TRANSIT_TIME - время перехода команды к точке
DOZOR_DATA - информация об игре, придет текущая точка для команды или изменение ее статуса
В случае если игра перешла в статус WAITING_ACTIVE прийдет сообщение
{"message":"action","responseType":"DOZOR_DATA","object":{"id":2,"type":"DOZOR","dozorPointSet":[],"status":"WAITING_ACTIVE","sequenceOfPassingGame":1,"dozorSequenceOfPassingGameSet":[],"estimatedStartTime":"2022-08-01T18:00:00.000+0000","smenaId":1}}
В случае если игра перешла в статус ACTIVE то при начале времени перехода прийдет сообщение в канал команды
{"message":"action","responseType":"DOZOR_DATA","object":{"id":2,"type":"DOZOR","dozorPointSet":[],"status":"WAITING_ACTIVE","sequenceOfPassingGame":1,"dozorSequenceOfPassingGameSet":[],"estimatedStartTime":"2022-08-01T18:00:00.000+0000","smenaId":1}}
ENTERED_CODE - введенный код одним из участников команды
MESSAGE - нотификация для пользователей команды или для всех пользователей(должна отобразится нотификация в верхней части окна)
{"message":"action","responseType":"MESSAGE","object":"Тестовое сообщение"}
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.