Два часа и 3.5 доллара. Как я сделал простой сайт с визуализацией распространения коронавируса

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

План


Ну, это же простейшая задача, подумал я:

  1. Ищем открытый API на сайте ВОЗ.
  2. Пишем парсер.
  3. Поднимаем сервачек с базой где-нибудь во free tier амазона.
  4. Покупаем домен, сложностью с выбором быть не должно.
  5. Ставим фласк, наворачиваем d3js для графиков, прикручиваем туда letsencrypt для пущей важности.

Реальность


Что-то пошло не так:

  1. На сайте ВОЗ нет открытого API.
  2. Нормальный парсер не написать, ВОЗ выкладывает данные в PDF, формат меняется, а тратить на создание всего дашбордика больше одного вечера не входило в мои планы.
  3. Оказывается, я уже потратил свой free tier на какие эксперементы.
  4. Почти все домены вида coronavirus b coronavirus 2020 уже заняты, кому они вообще понадобились-то?
  5. Учитывая предыдущие пункты, я точно не уложусь в один вечер, настраивая flask и базу для него...

Новый план


Кто-то на github публиковал свой nocode проект, а я-то чем хуже?

  1. Ну и черт с ним с API, хорошо хоть данные есть.
  2. Соберем руками, благо PDF файликов совсем мало. Пополнять тоже будем руками, за то время, которое понадобится на создание парсера, можно тратить по 5 минут каждый вечер на протяжении нескольких месяцев, попутно читая отчеты ВОЗ и получая дополнительную полезную информацию, благо ВОЗ публикует отчеты около полуночи, так что их можно оперативно выкладывать на сайт.
  3. Будем делать все просто, используем shared-хостинг, напросимся к кому-то из знакомых, проект-то не коммерческий и нагрузки не будет.
  4. На распродаже есть coronavirus2020.live за $3.5, да, обновление будет стоить потом более 20, но за год исчезнет или коронавирус, или человечество.
  5. Что у нас есть из готовых решений? Возьмем для визуализации бесплатный Google Datastudio, как раз отлично интегрируется с Google Sheets. Вместо SSL от letsencrypt используем cloudflare.

Решение


Можно сказать, что решение получилось действительно nocode и полностью соответствуем моим ожиданиям:

  1. Данные собраны в небольшую табличку в Google Sheets.

  2. В Datastudio создан простой дашборд.


  3. Весь сайт — один html файл в 42 (так получилось не специально) строки, половина из которых — метаданные всяких разметок.

  4. Вместо сертификата и гугл-аналитики — cloudflare.
  5. Вместо подключения почты для фидбека — ссылка на твиттер.

Выводы


  1. Сейчас любой человек, даже не имеющий никакого опыта работы с базами, не знающий SQL, может довольно эффективно работать с данными и строить красивые отчеты. Но SQL все же лучше знать.
  2. Никогда нельзя забывать о конечной цели, простое решение, приводящее к цели, всегда лучше сложного, а тем более — не реализованного.
  3. Коронавирус коварен и не думает останавливаться.

Наверняка что-то из этого можно было сделать еще проще и быстрее, а может, кто-то даже сделал более крутую визаулизацию, подключив больше источников данных (многие публикации на китайском, а я в нем, увы, не сильно хорош). Если у вас есть чем поделиться — с удовольствием обсужу в комментариях. Всем здоровья, товарищи.
Источник: https://habr.com/ru/post/486544/


Интересные статьи

Интересные статьи

С 2010 года вступил в силу закон «Об обеспечении доступа к информации о деятельности государственных органов и органов местного самоуправления», которым всем этим органам вменялось ...
Всем привет. Когда я искал информацию о журналировании (аудите событий) в Bitrix, на Хабре не было ни чего, в остальном рунете кое что было, но кто же там найдёт? Для пополнения базы знаний...
Если у вас есть интернет-магазин и вы принимаете платежи через Интернет, то с 01 июля 2017 года у вас есть онлайн-касса.
Здравствуйте, хабраюзеры. Сегодня я хочу рассказать о том, как написать свой простенький NTP клиент. В основном, разговор зайдет о структуре пакета и способе обработки ответа с NTP сервера. Код б...
Как обновить ядро 1С-Битрикс без единой секунды простоя и с гарантией работоспособности платформы? Если вы не можете закрыть сайт на техобслуживание, и не хотите экстренно разворачивать сайт из бэкапа...