Git Product home page Git Product logo

covid-tracker's Introduction

COVID-19 Tracker

build GitHub release (latest by date including pre-releases) Codacy Badge Quality Gate Status Maintainability Rating Reliability Rating Technical Debt Sonar Violations (long format) Security Rating Vulnerabilities Coverage Lines of Code Maintenance GitHub

COVID-19 Tracker is a microservice that tracks the number of infected cases with the COVID-19 virus. The Coronavirus disease (COVID-19) is the name given to a newly discovered strain of Coronavirus, called SARS-CoV-2, which was officially declared a Pandemic on 11 March 2020. Statistical data associated with COVID-19 changes rapidly, and there are various sources aggregating this data that update at different times, so do expect some variation in the data from other sites and sources. For more information regarding COVID-19, see the WHO's COVID-19 Q&A page.

Buy me a coffee

Releases: https://github.com/StevenJDH/covid-tracker/releases

Features

  • Global COVID-19 statistics provided by Johns Hopkins University CSSE.
  • Total infected cases along with total new infections since previous day.
  • Dynamic filtering of geographic data.
  • Scheduled cache control of source data.

Prerequisites

  • Docker/Rancher Desktop or Kubernetes for running the container.
  • Optional: Java 17+ (Temurin/Adopt) OpenJDK for compiling.
  • Optional: Maven 3.8.4+ CLI for compiling.

Container registries

COVID-19 Tracker container images are currently hosted on the following platforms:

For production use cases, it is not recommended to pull an image with the :latest tag, or no tag since these are equivalent.

Helm chart

COVID-19 Tracker can be optionally deployed to a Kubernetes cluster using the COVID-19 Tracker Helm Chart that is managed in a separate repository. All of the features described below and more are supported by this chart.

Usage

To run the application locally, or access it without an Ingress resource, use one of the following approaches below.

Docker/Rancher Desktop:

docker run --name covid-tracker -p 127.0.0.1:80:8080/tcp -d stevenjdh/covid-tracker:latest
# OR
nerdctl run --name covid-tracker -p 127.0.0.1:80:8080/tcp -d stevenjdh/covid-tracker:latest

Kubernetes:

kubectl run covid-tracker --image=stevenjdh/covid-tracker:latest --port 8080
kubectl expose po covid-tracker --port 80 --target-port=8080 --name=covid-tracker
kubectl port-forward svc/covid-tracker 80:80

Once the application is running, the UI can be accessed via http://localhost.

Endpoints

Below are the URL references used in the app.

GET :8080/
GET :8081/actuator/info
GET :8081/actuator/health
GET :8081/actuator/health/liveness
GET :8081/actuator/health/readiness

Schedule for cached statistics

Cached statistics expire every 6 hours by default in UTC time, but it can be overridden using the SPRING_CRON_SCHEDULE environment variable. The cron syntax used by Spring is different, so use CronMaker to generate the desired schedule. Take the result, and remove the last argument to make it valid. For example, 0 0 0/1 1/1 * ? * is edited to become 0 0 0/1 1/1 * ? for use in Spring.

Disclaimer

COVID-19 Tracker is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Contributing

Thanks for your interest in contributing! There are many ways to contribute to this project. Get started here.

Do you have any questions?

Many commonly asked questions are answered in the FAQ: https://github.com/StevenJDH/covid-tracker/wiki/FAQ

Want to show your support?

Method Address
PayPal: https://www.paypal.me/stevenjdh
Cryptocurrency: Supported options

// Steven Jenkins De Haro ("StevenJDH" on GitHub)

covid-tracker's People

Contributors

stevenjdh avatar

Watchers

 avatar  avatar  avatar

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.