/reset

Template app that you can use to bootstrap your project.

Primary LanguagePythonMIT LicenseMIT

RESET

Template app that you can use to bootstrap your project.

Most common API backend functionality

Roadmap:

  • (done) Simple REST CRUD todo-list app
  • (done) Marshalling
  • (done) Jsonapi support
  • (done) Access based on JWT
  • (done) Functional tests example
  • (done) Unit tests example
  • Async endpoints example
  • Kong or similar as a passport-proxy-app
  • Postponed calls with rabbitmq or redis and celery
  • Regular jobs, lambda-like functions
  • Environments: PROD, DEV
  • Telemetry module, that will sends data to the some timeseries DB (for example InfluxDB or similar)
  • Statistics gathering with prometheus
  • Autogenerated grafana dashboard
  • gRPC example app
  • GQL example app
  • HTTP/2 example
  • More complex CRUD (REST and GQL) with relations and hierarchical-like data structure
  • Scalable, multi-cloud ready database
  • Hashicorp infrastructure for deployment to multi-cloud in the same time (aws+cgp+azure)
  • Vagrant support for simulating several

Goals of this repository is making a blueprint that can be used in every python web app.

Main features, that should be in the final solution:

  • Easy bootstrap a new project
  • Ease supportable codebase
  • Modular architecture
  • Infrastructure as a code (devops minded approach)
  • Cloud first, but multi-tenant and multi-cloud support

HOW TO

Run app

docker-compose up --build

Run tests

After running the app

Run unit tests:

docker exec -it reset-app make ut

Run functional tests:

docker exec -it reset-app make ft

Currently the main focus is putted on the functional tests, not unit