An open API service indexing awesome lists of open source software.

https://github.com/funfunfine/gde


https://github.com/funfunfine/gde

Last synced: 8 months ago
JSON representation

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