Work
UniversityUniversity · Waste management

Di Project & Di Mobile

A smart waste management platform: a web dashboard, a mobile app, authentication and an AI recycling assistant.

Screenshot of Di Project & Di Mobile (1/2)
Screenshot of Di Project & Di Mobile (2/2)
SYSTEM.md

The problem

Managing waste collection requires knowing where waste piles up and how to get there.

What I built

I led development: an authentication API in Spring Boot with PostgreSQL and Redis, a Django service that connects to Gemini, a React web dashboard with heat maps and a React Native mobile app.

Outcome

A university project led end to end, from backend to mobile app.

Decisions that mattered

  1. 01

    Geographic data first

    Leaflet heat maps and routing rely on the geolocation of trucks and collection points.

  2. 02

    Authentication with verification

    JWT plus an emailed verification code, stored in Redis with an expiry.

  3. 03

    An AI assistant

    A Django service with DRF connects to Gemini to answer recycling questions.

Technologies

  • Spring Boot
  • Django
  • React
  • React Native
  • PostgreSQL
  • Redis
  • Gemini

C4 model. The pulsing line is the main path of a request.

Level 1 · who uses the system and what it connects to

HTTPS1Mobile2HTTPSSMTPOperations staffRuns fleet, routes andanalyticsMobile userUses the app in the fieldDiSmart waste managementGoogle Gemini[Google Gemini]The assistant's modelGmail SMTP[Gmail SMTP]Email verification

Level 2 · the applications and data stores it is made of

HTTPS1App2REST · JWT3REST · JWTREST · JWTGPS · STOMP4WebSocket · STOMP5JDBCcodesGemini APIOperations staffRuns fleet, routes andanalyticsWeb dashboard[React 19 · Leaflet · STOMP]Fleet, routes, staff andanalyticsAuthentication API[Spring Boot 3 · Java 21]JWT, roles and verificationDatabase[PostgreSQL]Users and rolesGPS service[Java 21 · simulador GPS]Truck locationAssistant API[Django 5 · DRF · SimpleJWT]Recycling chat with AIRedis[Redis]Verification codesMobile userUses the app in the fieldMobile app[React Native 0.82]Sessions and locationGoogle Gemini[Google Gemini]The assistant's model

Level 3 · the components inside the API

calls1rulesport2JDBC3portRedisportSMTPControllers[Controllers]Auth, verification and appsServices[Services]Authentication andverificationModel[Model]Users and rolesJPA repositories[JPA]Persist to PostgreSQLDatabase[PostgreSQL]Users and rolesRedis repository[Redis repository]Expiring codesRedis[Redis]Verification codesMail sender[Mail sender]Verification codeGmail SMTP[Gmail SMTP]Email verification
  • Person
  • System
  • Container
  • Database
  • External
  • Main path
  1. 01User
  2. 02Mobile app
  3. 03GPS service
  4. 04Web dashboard
  5. 05Heat maps

CV

Get my CV

Leave your email and I will send the CV there. First I check the address is yours with a code.