Covid Data Insights is a web-based mapping application that uses the Leaflet.js library (documentation available here: https://leafletjs.com/) for creating an interactive map to display a chloropleth map for COVID-19 cases. It makes requests to 2 APIs:
- CovidDataManagement API: this API retrieves the files provided by World Health Organizatinon - WHO, and uses CSV Helper library for reading those files. Then, it loads the COVID-19 data contained in those files and stores the information in SQL Server database
- GeoSpatialDataLoader API: this API consumes a GeoJson file obtained in Natural Earth website (https://www.naturalearthdata.com/downloads/10m-cultural-vectors/) and saves the data contained in that file in a PostgreSQL database, using PostGIS extension
Important considerations used during the development:
- GeoJson uses [long, lat] format to represent coordinates positions (https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.1)
- Leaflet.js uses [lat, long] format to represent coordinates positions (https://leafletjs.com/reference.html#latlng)
![architecture image architecture image](https://private-user-images.githubusercontent.com/36134456/274403426-aa92c1e0-b406-48e4-ab19-9b4420ae4843.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxMzQxMzksIm5iZiI6MTczOTEzMzgzOSwicGF0aCI6Ii8zNjEzNDQ1Ni8yNzQ0MDM0MjYtYWE5MmMxZTAtYjQwNi00OGU0LWFiMTktOWI0NDIwYWU0ODQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDIwNDM1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNhMGIzMjRhM2JhYjlmYTc2ZGQ4YjgzNjJiYWUwMjJlZjMxNzRhMzIyMDkxMzA1OGRkMjBkMDg4NTliZTA0NzYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cwlC9uHwlX7FT7Y7Siod7bZBBWZzUBo7kglgBkOILtY)
- .NET 6
- C#
- ASP.NET MVC Core
- ASP.NET WebApi
- Background Services
- Entity Framework Core
- LINQ
- SQL Server
- PostgreSQL
- NLog
- CsvHelper
- Javascript
- CSS
- HTML5
- Leaflet.js
Home page displaying a Leaflet map with a legend and a filter that shows the Global/World detailed information:
![architecture image architecture image](https://private-user-images.githubusercontent.com/36134456/274401803-1f23367d-c833-4192-8610-122af3d22319.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxMzQxMzksIm5iZiI6MTczOTEzMzgzOSwicGF0aCI6Ii8zNjEzNDQ1Ni8yNzQ0MDE4MDMtMWYyMzM2N2QtYzgzMy00MTkyLTg2MTAtMTIyYWYzZDIyMzE5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDIwNDM1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM5NjZiNjc1YmMxNTVmMjAwYTA5OTk1NjlhOGFiNzgyYTY5OWJlODA3YzhlMTIzM2NmOTg4OTYyYjY5OGJlNDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QL9JFsq_5RzJOMDYQrMWsLXHRoOR83O0uhqPLU4g1oc)
Hover the mouse over the polygon regions, and a popup with acumulated cases, vaccinations and deaths will appear:
![architecture image architecture image](https://private-user-images.githubusercontent.com/36134456/274401932-c3097842-020f-4d18-8c7f-a2d860701b1a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxMzQxMzksIm5iZiI6MTczOTEzMzgzOSwicGF0aCI6Ii8zNjEzNDQ1Ni8yNzQ0MDE5MzItYzMwOTc4NDItMDIwZi00ZDE4LThjN2YtYTJkODYwNzAxYjFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDIwNDM1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZlMjY0N2NhNjJjMGIzZjEzYmI1NmExZDNiZDg1ZWRiYjkwYWQ0ZTQwMDkwZGQxODEzNDcwZDU0YmY2NzQxNTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.vbJPpl13nqwI7sqIBgZoZY4W4dGutPG_qbEcEiNTZAM)
Click in a specific polygon region, and the filter will update with the data for that specific region:
![architecture image architecture image](https://private-user-images.githubusercontent.com/36134456/274407116-7c9a65ae-1e61-4784-82ba-dc5d375fbe07.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxMzQxMzksIm5iZiI6MTczOTEzMzgzOSwicGF0aCI6Ii8zNjEzNDQ1Ni8yNzQ0MDcxMTYtN2M5YTY1YWUtMWU2MS00Nzg0LTgyYmEtZGM1ZDM3NWZiZTA3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDIwNDM1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQzMWM5NmM5NGQ5OTdhMGQwNmE0ZGQ4Y2RjMWIzMWZmMWM0MjFlZjc2YzQ2ZmQ4NDFlMDRiZTAwYTI0OTBiZjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.7xYsrrHD172RA1ux0PlXuPTtu6_uYH4xPgjpbtYmGJw)