Git Product home page Git Product logo

alisos's People

Contributors

karasikrus avatar mettusekaterina avatar orangeflag avatar roundedglint585 avatar vladislavsheludchenkov avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

valentinp17

alisos's Issues

Сделать мок-сервис больницы

Эндпоинт POST /patient

{
    "userId": "string",
    "anamnesis": "string",
    "address": "string",
    "phone": "string",
    "doctorType": "string?"
}

Отвечает 200 OK (в теле тоже можно OK передать). Все поля обязательны, кроме doctorType.
Кладёт в свою базу все поля + какой-нибудь внутренний айдишник (автоинкремент или random UUID) + timestamp в свою отдельную базу (не в табличку в той же базе, а в отдельную базу, пожалуйста, не поленитесь хотя бы create database в постгре сделать)

Машина знаний

Нужно что-то сделать с той работой, которую ты проводил в рамках прошлых тасок. Или прикрутить к нашему котлин бэкэнду (как угодно, хоть через микросервисы), или просто выложить в отдельную папочку свои наработки и рассказать, что прикольного с ними дальше можно поделать

Перенести ин-мемори хранилище в постгрес

У нас сейчас собранная информация для пользователя хранится тупо в мапе. Нужно вместо этого использовать РБД - завести табличку с пользователями, у которых будут примерно такие поля: айдишник, анамнез, адрес, телефон, дата обновления анамнеза, дата обновления адреса, дата обновления телефона. Если анамнез и телефон ещё не заполнены, то и дата обновления должна быть null.

ФРОНТ: навести порядок в документации

Написать readme.md. Там нужно рассказать, зачем нужен мок-сервер (для демонстраций), какая у него БД, как это деплоится и запускается.
В readme.md нужно также описать архитектуру, но не сильно углубляясь в детали (просто о том, что есть фронт на ангуляре и бэк на экспрессе)
Если код требует комментариев и рефакторинга, произведи рефакторинг и комментарии, но надеюсь, что в тех объёмах, что есть сейчас, у нас и так всё ок

Как бонус, в ридмишку предлагаю добавить раздел "planned features" и пофантазировать (можно даже одну аккуратную шутку добавить)

le chic

Обновить Регℹ️стра2ра UI в соответствии с макетом:
image
При раскрытии одного элемента, остальные сворачиваются. Если доктор не определён, то в заголовке надпись "Пациент", если определён - "Пациент для {{doctorname}}"
В блоке "Жалобы" выводим анамнез.

Уточнять у пользователя актуальность данных

Если анамнез, адрес или телефон обновлялись очень давно (раньше, чем час назад), то нужно спрашивать, всё ли в силе.

Нужно:

  1. Завести в БД в табличке с пользователями флаги waiting_for_address_confirmation и waiting_for_phone_confirmation типа булеан с дефолтным значением false
  2. Сделать новую ветку диалога, по приоритету выше конца диалога, но ниже всех остальных. Условие для этой ветки - время обновления адреса и/или телефона не null и старше, чем час назад.
    При попадании в эту ветку ставим в true флажок, соответствующий тому, что у пользователя старое (или оба флажка, если и то, и другое) и отправляем ответ в соответствии с таблицей
адрес телефон сообщение
старый новый Вы сейчас здесь? %address%
новый старый Сюда можно будет позвонить? %phone%
старый старый Всё верно? Адрес: %address%, телефон: %phone%
  1. Все ветки, кроме ветки, разработанной в пункте 2, сбрасывают оба флажка в false
  2. Если сообщение пользователя содержит токен "да" (регистронезависимо), то переставляем дату обновления телефона и/или адреса (того, чей флаг поднят) на текущую
  3. Если сообщение пользователя начинается с "нет" (регистронезависимо), то сбрасываем телефон и/или адрес (того, чей флаг поднят) и дату его обновления в null
  4. Пункты 4-5 должны выполняться перед всем остальным процессингом сообщения (то есть до того, как начнут распознаваться адрес/телефон)

Навести порядок в конфигах и документации

  1. Вынести всё, что тянется из переменных окружения, и всё, что захардкожено, в конфиг. В репозиторий положить версию конфига, которая тянет все нужные значения из переменных окружения (так будет проще деплоить на хероку)
  2. Написать readme.md. Там нужно описать, по какому контракту Алисос работает с больничкой, какой формат конфига ожидает (или какие переменные окружения), как работает с базой (сам создаёт табличку под себя), как запускается.
  3. Помимо прочего, нужно добавить документацию по коду. Описываем архитектуру в readme.md и добавляем javadoc-комментарии к важным классам/методам
  4. Рефакторинг
  5. Добавить logback.xml

Машин-лёрнинг. Этап 2.

Такие увлекательные активности как:

  • общение с Передреевым, Пчелкиным и Слободой
  • перевод датасета через яндекс.переводчик
  • написание 1000 ифов на котлине

Небольшие правки по AliSOS Mock Clinic Server

  1. Изменить эндпоинт POST /patient на POST /api/patient
  2. Настроить роутинг так, что если роут начинается с api, то express ищет его у себя, а иначе возвращает UI
  3. Убрать postinstall у patients-list
  4. Добавить ng-build в postinstall корневого проекта (того, что на экспрессе)
  5. Убрать из параметров ng-build параметр base-href
  6. Очень аккуратно переименовать patients-list в clinic-ui
  7. Написать нормальные тесты или удалить автосгенерированные тесты
  8. Убрать лишние devDependencies из package.json (почти все)
  9. Заменить абсолютные урлы на обращение к апи на относительные, так как фронт и бэк будут деплоиться на одну и ту же машину

Убивать запрос в больницу

У нас всего три секунды на ответ, поэтому если сервис больницы не ответил нам за две секунды, то нужно этот запрос отменить и отправить стандартный ответ "Извините, сервис временно недоступен"

Регℹ️стра2ра UI

Нужен интерфейс, через который можно будет посмотреть все обращения пациентов в больничку. Пока без фильтрации и безо всяких действий, только просмотр, но закладывайтесь на то, что будет фильтрация и удаление записей, например.

Подумайте, будет это отдельный сервис или сделаете в том же проекте, где бэк

Поисследуйте, как это деплоить на хероку (подозреваю, что если делать всё в одном проекте, то дополнительно особо ничего делать не придётся, но гарантировать не могу)

Замена favicon.ico

Нужно заменить favicon.ico на фронте на всех страницах на 🆘

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.