alisos's People
Forkers
valentinp17alisos's Issues
Сделать мок-сервис больницы
Эндпоинт POST /patient
{
"userId": "string",
"anamnesis": "string",
"address": "string",
"phone": "string",
"doctorType": "string?"
}
Отвечает 200 OK (в теле тоже можно OK передать). Все поля обязательны, кроме doctorType.
Кладёт в свою базу все поля + какой-нибудь внутренний айдишник (автоинкремент или random UUID) + timestamp в свою отдельную базу (не в табличку в той же базе, а в отдельную базу, пожалуйста, не поленитесь хотя бы create database
в постгре сделать)
Машина знаний
Нужно что-то сделать с той работой, которую ты проводил в рамках прошлых тасок. Или прикрутить к нашему котлин бэкэнду (как угодно, хоть через микросервисы), или просто выложить в отдельную папочку свои наработки и рассказать, что прикольного с ними дальше можно поделать
Перенести ин-мемори хранилище в постгрес
У нас сейчас собранная информация для пользователя хранится тупо в мапе. Нужно вместо этого использовать РБД - завести табличку с пользователями, у которых будут примерно такие поля: айдишник, анамнез, адрес, телефон, дата обновления анамнеза, дата обновления адреса, дата обновления телефона. Если анамнез и телефон ещё не заполнены, то и дата обновления должна быть null.
В конце диалога дёргать мок-сервис больницы
разрабатывается в #5
Подумать над мл-компонентом
Запилить десижн-три или что угодно ещё. Главное - по анамнезу получать рекомендации по врачу.
ФРОНТ: навести порядок в документации
Написать readme.md. Там нужно рассказать, зачем нужен мок-сервер (для демонстраций), какая у него БД, как это деплоится и запускается.
В readme.md нужно также описать архитектуру, но не сильно углубляясь в детали (просто о том, что есть фронт на ангуляре и бэк на экспрессе)
Если код требует комментариев и рефакторинга, произведи рефакторинг и комментарии, но надеюсь, что в тех объёмах, что есть сейчас, у нас и так всё ок
Как бонус, в ридмишку предлагаю добавить раздел "planned features" и пофантазировать (можно даже одну аккуратную шутку добавить)
le chic
Добавить кнопки "Да" и "Нет"
Если мы задали пользователю какой-то вопрос из разработанных в задаче #4, то нужно вместе с сообщением отправить ему две кнопки: "Да" и "Нет".
Документация: https://yandex.ru/dev/dialogs/alice/doc/protocol-docpage/. Если кратко, то объекты кнопок лежат в массиве response.buttons
Уточнять у пользователя актуальность данных
Если анамнез, адрес или телефон обновлялись очень давно (раньше, чем час назад), то нужно спрашивать, всё ли в силе.
Нужно:
- Завести в БД в табличке с пользователями флаги waiting_for_address_confirmation и waiting_for_phone_confirmation типа булеан с дефолтным значением false
- Сделать новую ветку диалога, по приоритету выше конца диалога, но ниже всех остальных. Условие для этой ветки - время обновления адреса и/или телефона не null и старше, чем час назад.
При попадании в эту ветку ставим в true флажок, соответствующий тому, что у пользователя старое (или оба флажка, если и то, и другое) и отправляем ответ в соответствии с таблицей
адрес | телефон | сообщение |
---|---|---|
старый | новый | Вы сейчас здесь? %address% |
новый | старый | Сюда можно будет позвонить? %phone% |
старый | старый | Всё верно? Адрес: %address%, телефон: %phone% |
- Все ветки, кроме ветки, разработанной в пункте 2, сбрасывают оба флажка в false
- Если сообщение пользователя содержит токен "да" (регистронезависимо), то переставляем дату обновления телефона и/или адреса (того, чей флаг поднят) на текущую
- Если сообщение пользователя начинается с "нет" (регистронезависимо), то сбрасываем телефон и/или адрес (того, чей флаг поднят) и дату его обновления в null
- Пункты 4-5 должны выполняться перед всем остальным процессингом сообщения (то есть до того, как начнут распознаваться адрес/телефон)
Навести порядок в конфигах и документации
- Вынести всё, что тянется из переменных окружения, и всё, что захардкожено, в конфиг. В репозиторий положить версию конфига, которая тянет все нужные значения из переменных окружения (так будет проще деплоить на хероку)
- Написать readme.md. Там нужно описать, по какому контракту Алисос работает с больничкой, какой формат конфига ожидает (или какие переменные окружения), как работает с базой (сам создаёт табличку под себя), как запускается.
- Помимо прочего, нужно добавить документацию по коду. Описываем архитектуру в readme.md и добавляем javadoc-комментарии к важным классам/методам
- Рефакторинг
- Добавить logback.xml
Машин-лёрнинг. Этап 2.
Такие увлекательные активности как:
- общение с Передреевым, Пчелкиным и Слободой
- перевод датасета через яндекс.переводчик
- написание 1000 ифов на котлине
Небольшие правки по AliSOS Mock Clinic Server
- Изменить эндпоинт POST /patient на POST /api/patient
- Настроить роутинг так, что если роут начинается с api, то express ищет его у себя, а иначе возвращает UI
- Убрать postinstall у patients-list
- Добавить ng-build в postinstall корневого проекта (того, что на экспрессе)
- Убрать из параметров ng-build параметр base-href
- Очень аккуратно переименовать patients-list в clinic-ui
- Написать нормальные тесты или удалить автосгенерированные тесты
- Убрать лишние devDependencies из package.json (почти все)
- Заменить абсолютные урлы на обращение к апи на относительные, так как фронт и бэк будут деплоиться на одну и ту же машину
Убивать запрос в больницу
У нас всего три секунды на ответ, поэтому если сервис больницы не ответил нам за две секунды, то нужно этот запрос отменить и отправить стандартный ответ "Извините, сервис временно недоступен"
Регℹ️стра2ра UI
Нужен интерфейс, через который можно будет посмотреть все обращения пациентов в больничку. Пока без фильтрации и безо всяких действий, только просмотр, но закладывайтесь на то, что будет фильтрация и удаление записей, например.
Подумайте, будет это отдельный сервис или сделаете в том же проекте, где бэк
Поисследуйте, как это деплоить на хероку (подозреваю, что если делать всё в одном проекте, то дополнительно особо ничего делать не придётся, но гарантировать не могу)
Замена favicon.ico
Нужно заменить favicon.ico на фронте на всех страницах на 🆘
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.