https://github.com/funfunfine/gde
https://github.com/funfunfine/gde
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/funfunfine/gde
- Owner: FunFunFine
- Created: 2020-03-31T11:21:13.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-04-12T12:04:38.000Z (about 6 years ago)
- Last Synced: 2025-03-02T11:34:33.693Z (over 1 year ago)
- Language: Scala
- Size: 13.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gde трамвай
## Что хочется
### Сценарий для обычного пользователя
* Я пишу боту: пора ехать на работу из дома.
* Бот вытаскивает стартовую и конечную точку и выбирает подходящие трамваи для нужного пользователя — меня.
* Бот отвечает, что сейчас найдет трамвай.
* Бот начинает собирать информацию с ettu.ru.
* Если до трамвая меньше 4 минут, то он отправляет сообщение.
### Сценарий для нового пользователя
* Пользователь запускает бота.
* Бот приветствует и спрашивает следующие данные:
* На какой остановке дом.
* На какой остановке работа.
* Какие трамваи предпочитает пользователь для маршрутов туда и обратно.
* Есть ли дополнительные места, например учеба. Если да, то выясняет трамваи.
* Бот сохраняет все эти данные к себе в БД.
### Архитектура в два сервиса
Есть два сервиса — сервис-бот и сервис-API.
Бот прогоняет сценарии и общается с API, а тот ходит на ettu.ru и управляет данными.
В рамках сценария с поиском трамвая и ожиданием бот будет пинговать API раз в какое-то время.
Тогда нужно два эндпоинта — регистрация и поиск трамвая.
Поиск трамвая: реквест — {UserId, From, To}; ответ — Found {Trams} | NotFound
Регистрация: реквест — {UserId, Places etc.}; ответ Ok | NotOk
Обновление данных о пользователе: реквест — Add; ответ Ok | NotOk