This is an coding practice repository for a timeseries API using python, angular, mqtt and MongoDB.
- Pyenv
- Pyenv virtualenv
GNU make
Run all tests with docker compose:
make test
Spin up development environment:
make compose-up
API endpoint with query string filters deep-object like:
?timestamp[gte]=2021-01-01T00:00:00×tamp[lte]=2021-01-05T00:00:00&metadata.area=kitchen&limit=100"
will become mongo query:
{
"timestamp": { $gte: ISODate("2021-01-01T00:00:00"), $lte: ISODate("2021-01-05T00:00:00") },
"metadata": { "area": "kitchen" },
"limit": 100
}
Used github actions to define CI pipelines:
Limits to 100 results:
API pagination offset(done)Pyparsing query validation(done)- check usage of mongo engine ORM with timeseries collection
- kube-linter does not support kustomize, pre-render manifests before running linter
- add UI tests (cypress)
increase test coverage(done)- instrumentation, tracing, metrics and monitoring
- terraform deployment