This project serves as the API backend for the platform and is built using cutting edge tech resulting in great maintainability and productivity
This project is packed with Industry wide best practices with great attention to detail. Listing some of the best features below.
💻 Infastructure As Code (IaC)
The entire infrastructure required for this project including but not limited to the Database, ECS Container, Cloud-front CDN, S3 Bucket, Custom Domains, and Private Networks has been configured through code (Terraform) which allows complete automation over infrastructure provisioning, and multiple environments can be spun up and destroyed predictably and consistently. Here is an example of provisioning the database.
🤖 CI/CD Automation
The project includes complete automation via GitLab CI including support for multiple environments. Whenever code is pushed on a protected branch the pipeline runs validates the terraform configuration, builds the docker image and then applies the terraform configuration.
🔔 Push Notifications
Push notifications are sent to the mobile client using firebase. A periodic task has been setup on the backend to send notifications everyday at a particular time to all the concerned farmers.
🕸️ GraphQL APIs
The project implements GraphQL APIs to the most flexibility to the client whilst minimizing development effors. Since the entire schema is tightly controlled the client can introspect the server and get amazing autocompletion on the front-end minimizing human error.
📅 Periodic Tasks
The project uses Celery Beat and Redis for scheduling and running asynchronous periodic tasks.
☁ Easy to deploy on AWS
Can be easily deployed on AWS with the use of Terraform. Unfortunately I cannot keep this project live for a demo because it costs a considerable amount of money considering the sheer number of components in the Infastructure.