VirusInfo - как домашнее задание превратилось в полезный продукт

Мое простое, но полезное приложение и его алгоритм

Университет Maksim Khameta
Университет Maksim Khameta

При изучении языков программирования в университете, материал нужно закреплять на лабораторных, и вот на одном из предметов нас просят ради практики:

"Ну сделайте какое нибудь простое приложение на тысячу-полторы строк, у вас пол семестра"

В голове сразу же начинают крутиться: калькулятор, прогноз погоды или курсы валют, но не весной 2020 года. На дворе до сих пор бушует коронавирус, и хочется сделать что-нибудь полезное и в тему. Копировать в сотый раз статистику количества больных не вариант...

А почему бы не сделать карманный тест для любого желающего. Настоящий пройти сложно и долго, по крайней мере в Беларуси, России, и пусть он будет лишь незамысловатым алгоритмом, но будет хотя бы предупреждать и давать советы на основе результатов.

Выглядит в итоге это так:

Скриншоты приложения Maksim Khameta
Скриншоты приложения Maksim Khameta

Что мы имеем и как это работает:

  • Кнопка "Определить местоположение" Зачем? - Для отправного значения, найдя определенную страну в таблице по заболевшим коронавирусом, я вычисляю (общее количесвто случаев по стране / количество выздоровевших). Таким образом, получая число "успешности" страны в борьбе с вирусом, чем меньше тем лучше.
  • Кнопка "определить погоду" - На самом деле, для незначительного влияния на результат, по этому поводу до сих пор споры, но я, все-таки, учел, что если на улице жара (для меня это > 30 градусов), то это как минимум заставит людей подумать идти ли на солнце или посидеть дома, тоже самое с морозом. Температура от 0 до 22 и влажность 40 - 60% не имеют снижающего коэффициента, потому что способствуют распространению, на основании одного из исследований.
  • Текстовое поле "Возраст" - Не секрет, как разные возраста переносят и "цепляют" эту инфекцию, поэтому сделал понижающие/повышающие коэффициенты для разных возрастных групп.
  • Текстовое поле "Контакты" - Тут все просто, чем больше тем хуже, при более чем 20 за 3 дня тест отправит вас в нокаут, вы будете в зоне риска, если в стране еще есть больные. Стоит отметить, что контакты это также кассир в магазине или аптеке. #stayhome.
  • Да/Нет "Используешь ли ты маску?" - Этот коэффициент может снизить эффект влияние количества контактов, но незначительно.
  • "Температура тела" - Разбита на небольшие интервалы, если в промежутке 36.0 - 36.8 коэффициента не будет (норма), если больше, то соответственно растет.
  • Список "Самочувствие" - Либо хорошее, либо варианты, которые состоят из основных симптомов болезни, они приближают к зоне риска.

Опираюсь на все полученные данные вычисляем вероятность и имеем 3 варианта: здоров / можешь быть в зоне риска / в зоне риска, к последним двум идут в дополнение сообщения-рекомендации, например, что нужно сократить количество контактов или следить за температурой тела и др. Короче, предлагаю протестировать самим (об этом ниже).

Конечно же не обошлось без раздела со статистикой заболевших по странам) и вкладкой с мерами профилактики и предосторожности во время эпидемии, соблюдая их все, будете здоровы!

Другие разделы Maksim Khameta
Другие разделы Maksim Khameta

Получилось такое несколько функциональное приложение на смартфон. Работает на системах Android 5 и выше, бесплатно, переведено на English i Polski, доступно в Google Play под названием "VirusInfo" или по ссылке:

1 комментарий

Давайте упростим ваше приложение до detect_covid_status_random_bool()