
Avshesh
Turning Neighbourhood Waste into recycle, Income, creating energy from compost and reducing dumps with Amazon Bedrock and EC2
From Photo to Pickup: How I Built Avshesh to Keep Waste Out of the Dump
Every neighbourhood throws away things that still have value. A few kilograms of cardboard, plastic bottles, old newspapers, kitchen scraps. Individually they look like nothing. Together, across a whole city, they end up in a landfill, where they pollute land and water, and where rotting waste releases methane, a strong greenhouse gas.
I wanted to see if small amounts could add up. That is how Avshesh started. The name is Hindi for "what remains", and the idea is that what remains still has value.
The problem with small amounts
A scrap dealer will not make a trip for two kilograms of paper. A household has no way to reach the dealers who would pay for it. So nobody earns, and the waste goes to the dump with everything else.
On top of that, cities often have no clear picture of what is collected and where. Without numbers, it is hard to improve anything.
The idea: pool it, then collect it
Avshesh works like this:
- A household takes a photo of its waste. AI identifies the type, dry or wet, and estimates the weight.
- Homes in the same mohalla join a shared pool for that waste type.
- When the pool is full enough, a nearby scrap dealer or compost centre sees it, with the distance and the kilograms needed.
- The dealer plans one route, collects from every home in a single trip and pays.
- The household confirms the payment.
The sustainability part is simple. Dry waste goes to a scrap dealer, so it is sold on towards recycling instead of into the dump. Wet waste goes to a compost centre, so it turns into compost instead of rotting in a landfill. Pooling makes it worth the dealer's trip, so material that would have been thrown away actually gets collected. Fewer trips for more waste also means less fuel burned on the way.
For the city, there is a dashboard. The municipal commissioner and ward officers see every ward, manage officers and collection workers, and track how much waste was diverted. I built it around Bhubaneswar's real ward boundaries. The kilogram and CO₂ figures are estimates, not measurements, and I say so in the app.
How I built it, and where AWS fits
The backend is Spring Boot 4 on Java 17, with PostgreSQL and Redis. The frontend is a React PWA with maps and pickup routes, available in English, Hindi and Odia.
Amazon Bedrock reads the waste photos. I used the Nova Lite model through the Converse API with the AWS SDK for Java v2. One request shape handles both the image and the instructions, which kept the code small.
Amazon EC2 runs the whole app on one server with Docker Compose. A user-data script installs Docker, and Caddy gives the site automatic HTTPS. The server uses an IAM instance role to call Bedrock, so no AWS access keys are stored on the machine. For a public demo, that was the most important security decision. An Elastic IP keeps the address stable, and a security group opens only web traffic, with SSH limited to one address.
I scripted the setup with the AWS CLI, so creating and deleting the full environment is one command each. I also used Systems Manager Parameter Store to look up the latest Amazon Linux image, so I never hard-coded an AMI ID. I ran the deployment from AWS CloudShell.
What I learned
Small amounts matter when you can make them add up. The hardest part of recycling is not the recycling itself, it is the collection, the trip that makes it worth someone's time. A bit of software that groups nearby homes can change that.
I also learned to be careful with numbers. It is tempting to show a big CO₂ figure on a dashboard. I would rather show an honest estimate, and say it is an estimate.
What is next
Real SMS for password reset, verified emission factors with their sources, ward-level municipal data, and reviews of the Hindi and Odia text by native speakers.
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article