rubbish-geo is the (work-in-progress) backend to a forthcoming community litter map application.
In the summer of 2019 I did a freelance consulting project for Rubbish, a smart trash picker-upper startup. At the time they were interested in understanding what value they could derive from a rich collection of trash pickup data they had assembled.
One year later Rubbish's needs had advanced somewhat, and I was brought back in to build a geospatial analytics service that would allow the Rubbish team to build reports and community maps for stakeholders and community partners interested in understanding rubbish patterns in their neighborhoods.
The visualization attached is a service diagram showing, at a high level, how it works. Basically,
rubbish-geo is a serverless API over a PostGIS instance hosted on GCP. Litter pickups are written to the (preexisting) Firestore user database by the client, then pushed to the analytics database using a DB listener. Clients then make GET requests (authenticated using Firestore custom tokens) to Cloud Function endpoints to retrieve litter reports.
The section architecture in the repo
README has more information on how it works.