Вступление:

Все знают о COVOID 19, одном из самых важных моментов для людей и стран, которые борются с этим вирусом. Это моя небольшая инициатива по привлечению внимания людей, показывая им статистику подтвержденных / активных случаев по всем штатам и округам Индии через мое угловое приложение, где данные обновляются каждые 15–30 минут.

Итак, во время этого периода изоляции, поддерживая инициативу премьер-министра Модиджи оставаться дома, как использовать время. Поэтому я решил в свободное время научиться чему-то новому, помимо офисной работы. Итак, я сделал это угловое приложение под названием COVOID 19 Tracker.

Важное примечание:

Github: https://github.com/mehulk05/React-Weather-App

Живая демонстрация: https://mehulk05.github.io/COVOID-19/

Темный режим в реальном времени: https://mehulk05.github.io/COVOID-19-dark-mode/

В чем разница между https://www.covid19india.org/ и вашим сайтом?

Прежде чем продолжить, я хотел бы добавить одну важную вещь: аналогичный веб-сайт был создан кем-то на React, и они хорошо поработали, показывая живую статистику в виде графика. Мой сайт отличается от того, что я сделал в Angular-9. Технически эти ребята проделали отличную работу, так как их график и SPREAD TRENDS также работают, а также у них больше функциональности, чем у меня. Итак, я только получаю данные, сортирую и фильтрую их.

Вот ссылка на уже существующий сайт: https://www.covid19india.org/

О приложении COVOID 19 Tracker:

Приложение показывает в режиме реального времени данные о количестве случаев COVID-19 в различных штатах и ​​округах Индии. Он также показывает рост числа случаев по всей стране, а также рост числа случаев по штатам и районам. Он также показывает подтвержденные случаи, активные случаи, вылеченные случаи и общее количество смертей. Кроме того, в приложении есть одна страница с названием «Линии помощи», на которой есть различные номера телефонов доверия и ссылки для доступа людей. В приложении есть баннерная часть, где некоторые инструкции отображаются постоянно и меняются каждые 5 секунд, чтобы люди знали, какие меры безопасности приняты.

Используемая технология

  • Угловой9
  • Машинопись
  • Функции сортировки Javascript
  • Бутстрап

Ключевые особенности приложения:

  • Данные в реальном времени о количестве заболевших COVID-19
  • Показывает подтвержденные активные случаи, вылеченные случаи и количество смертей
  • Показывает данные из всех затронутых штатов
  • Показывает данные из пострадавших районов штатов
  • Может сортировать данные в порядке возрастания / убывания.
  • Включает страницу горячей линии с номерами телефонов доверия и ссылками на веб-сайты.
  • На баннере представлены действующие инструкции и меры предосторожности.
  • Данные обновляются каждые 15–30 минут.

Краткий обзор кода:

У меня три компонента и один служебный файл

Компоненты

  • Компонент приложения: содержит верхний и нижний колонтитулы.
  • HomeComponent: точка входа в приложение, которая включает в себя все, что находится внутри. Он содержит все данные о государственных компонентах и ​​включает в себя районный компонент.
  • DistrictComponent: содержит список округов для определенных штатов и динамически загружается в HomeComponent On Click определенного штата.
  • HelpLineComponent: содержит список номеров горячей линии.
  • FAQComponent: содержат сведения, относящиеся к конкретным приложениям и разработчикам.
  • Служба CoronaVirus: все данные JSON извлекаются с помощью HTTP-запроса.

API для получения данных

CoronaVirus.service.ts

getDataStateWise(): Observable<any> {
return this.http.get(this.url_statewise)
}
getDailyCaseStatus(): Observable<any> {
return this.http.get(this.url_dailycases)
}
getState(state) {
this.state = state
}
getDataDistrictWise(state) {
this.http.get(this.ulr_districtwise).subscribe(data => {
this.data1 = data
this.district = this.data1[state].districtData
this.districtdata.next(this.district)
})
}

Home.component.ts

Получение ежедневных данных о случаях

testData() {
 this.cs.getDailyCaseStatus().subscribe(
  response => {
   this.sortedDataBasedOnDate = response.data.history
   this.sortByMaxCases(this.sortedDataBasedOnDate)
// console.log(this.sortedDataBasedOnDate);
   this.calculateDiff(this.sortedDataBasedOnDate)
   this.statewisedata = this.sortedDataBasedOnDate[this.sortedDataBasedOnDate.length - 1].statewise
   this.statewisecase = this.sortedDataBasedOnDate[this.sortedDataBasedOnDate.length - 1].total
   //   console.log(this.statewisecase)
  },
  error => {
   console.log(error);
  }
 );
}

Получение информации о состоянии данных и расчет увеличения количества обращений со вчерашнего дня до сегодняшнего дня

getStateWise() {
  this.cs.getDataStateWise().subscribe(data => {
    this.lastrefreshedtime = data.data.lastRefreshed
    this.lastupdateddate = data.data.lastRefreshed
    // console.log(this.lastupdated)
function getDataDiff(startDate, endDate) {
     var diff = endDate.getTime() - startDate.getTime();
     var days = Math.floor(diff / (60 * 60 * 24 * 1000));
     var hours = Math.floor(diff / (60 * 60 * 1000)) - (days * 24);
     var minutes = Math.floor(diff / (60 * 1000)) - ((days * 24 * 60) + (hours * 60));
     var seconds = Math.floor(diff / 1000) - ((days * 24 * 60 * 60) + (hours * 60 * 60) + (minutes * 60));
     return {
      day: days,
      hour: hours,
      minute: minutes,
      second: seconds
     };
    }
this.lastupdated = getDataDiff(new Date(this.lastupdateddate), new Date(this.startdate));
},
   err => {
    console.log(err)
   })
 }

Сортировка данных в порядке возрастания и убывания

sortAscending(data) {
 this.resetArrows()
 this.isAscendingSort = !this.isAscendingSort;
 this.showArrows.uparrowState = !this.showArrows.uparrowState
data.forEach(item => item.statewise.sort(function(a, b) {
  if (a.state < b.state) {
   return -1;
  }
  if (a.state > b.state) {
   return 1;
  }
  return 0;
 }))
this.calculateDiff(this.sortedDataBasedOnDate)
}

Дополнительный код вы можете найти на Github - я дал ссылку на свой репозиторий в верхней части этой статьи.

Вывод:

Вот основные выводы этого проекта

  • Работа с HTTP-запросом
  • Работа с данными JSON (массивы и объекты)
  • Сортировка числовых данных
  • Сортировка типов данных
  • Сортировка массивов строк и объектов
  • Выполнение арифметических вычислений для типов объектов
  • Вложенная таблица внутри шаблона
  • Загрузка компонента динамически при нажатии
  • Использование функции интервала для слайд-баннера
  • Использование трубы фильтра даты в шаблоне
  • Межкомпонентная коммуникация

Надеюсь, вам понравится этот проект. И, пожалуйста, проверьте мою живую ссылку на веб-сайт после публикации. Пожалуйста, просмотрите статистику и. Продолжайте учиться и используйте свое время. БЕЗОПАСНО.



Не стесняйтесь обращаться ко мне в случае любых вопросов.

Посетите мой репозиторий Github для того же.



Также читайте мой блог



Следуйте за мной и читайте мой блог в среде, ниже ссылка