This project includes components for downloading, indexing, querying, and browsing time series data. The data sets currently being downloaded pertain to the COVID-19 pandemic. The set contains global data indexed into MongoDB with geospatial indexes to allow for querying by location.
A React/Redux UI with Nivo chats. I use Material-UI for component styling.
A REST API using Java/SpringBoot with a Mongo connector. Generates swagger documentation.
This project uses MongoDB because of its geospatial indexing capabilities. See the MongoDB README for additional documentation
- Docker and docker-compose
All components can be built using docker-compose.
```
DB_USER=<user> DB_PASS=<pass> docker-compose up -d
```
This project creates five containers:
- An Nginx proxy serving as an API gateway and reverse proxy to the UI and API containers
- The React/Redux UI
- A SpringBoot REST API which provides services over the dataset
- MongoDB database (container name
mongo
) - A
mongo-init
which will populate the mongo instance
To update the database, run the provided update script and then rebuild and run the mongo-init container
./update_data.sh
docker-compose build mongo-init
DB_USER=<user> DB_PASS=<pass> docker-compose up mongo-init