COVID-19 Singapore Tracker (https://covid-tracker.com/) - Visualising COVID-19/coronavirus cases and cluster zones in Singapore
This is a website that tracks COVID-19 cases and clusters in Singapore.
Note: The data from covid-sg.json
is stale as of mid-April, as the required data is no longer publicly available from MOH. However, locations.json
will still be partially updated.
Built with React, TypeScript, Redux, Redux Observable, RxJS, Styled Components, and Mapbox. Data is scraped from Singapore's Ministry of Health, and Gov.sg using Cheerio, pdfreader, andd NodeJS. Polygon data is obtained from nominatim and openstreetmap.
Data on this website is publicly available (also accessible via `src/data`) for your usage.
covid-sg.json
(in GEOJSONFeatureCollection
format) consists of meta data of each COVID-19 case in Singapore.
fields | description |
---|---|
geometry.coordinates | coordinates of the place of residence (other fallback values might include locations such as location of hospitalisation, if the former is not made available) |
properties.id | unique ID of each case (for internal use) |
properties.title | Alias for each case from official sources |
properties.confirmed | Date of confirmed diagnosis |
properties.discharged | Date of recovery/discharge |
properties.hospital | Location of hospitalisation |
properties.source | news source URL |
properties.nationality | Nationality/Residency of the individual |
properties.residenceAreas | List of places of residence |
properties.placesVisited | List of places visited by the individual |
properties.age | Age of individual |
properties.death | Date of death |
properties.transmissionSource | Source of transmission (Local , or Local ) |
properties.gender | Gender of individual |
properties.linkedClusters | Linked clusters, mapped from locations.json |
locations.json
(in GEOJSONFeatureCollection
format) consists of meta data of transmission clusters and other notable COVID-19 locations (hotspots, hospitals etc) in Singapore.
fields | description |
---|---|
geometry.coordinates | coordinates of the polygons of each location |
properties.location | name of each location |
properties.type | official transmission clusters (cluster ), hospitals (hospital ) or other notable locations (other ) |
properties.cases | linked COVID-19 cases |
news-content.json
consists of a short summary of each case in Singapore (no longer actively maintained)
- Contributors/collaborators may open an issue, or email me at [email protected].
-
Clone (
git clone [email protected]:wentjun/covid-19-sg.git
), or directly download this repository. -
Install dependencies.
npm i
-
Start the application in development mode. Opens the application on http://localhost:3000.
npm start
- Flaticon: Icons made by Smashicons from www.flaticon.com
- Main application components
-
React.js, with Presentation and Container components.
-
CSS in JS. This application uses Styled Components for that purpose.
-
Reactive JavaScript (RxJS).
-
Mapbox for rendering of the map.
- State Management with Redux. The following additional libraries help to manage the verbosity incurred from integrating TypeScript and RxJS with Redux.
-
Usage of typesafe actions
-
Handling of effects (also known as 'epics') using Redux-observables.
- Data scraping using cheerio