How matheus-nbx52/ecoleta works
eColeta is a web platform for on-demand recyclable pickup, connecting residents, collectors, and cooperatives. Its core workflow is: users register and log in; a resident requests a pickup with scheduled time and waste items; a collector accepts it, transports it, and delivers it to a cooperative; the cooperative validates the weight, finalizing the pickup and awarding resident points. Dashboards and histories support each role, alongside waste guidance and account/profile features. The excerpts show the collection API and persistence flow; other capabilities are included where documented or visible in the tree, without asserting unsampled wiring.
Main entry points: database.ts Database setup · ColetaService.ts Pickup service · AuthService.ts Auth service · ColetaRoutes.ts Pickup routes
Components 31
Web experience
- Web routes
frontend/src/routes/AppRoutes.tsx - Auth context
frontend/src/contexts/AuthContext.tsx - Resident screens
frontend/src/pages/dashboard/morador/DashboardMorador.tsx - Collector dashboard
frontend/src/pages/dashboard/coletor/DashboardColetor.tsx - Cooperative dashboard
frontend/src/pages/dashboard/cooperativa/DashboardCooperativa.tsx - Waste guidance
frontend/src/pages/guia-separacao/Guiaseparacao.tsx - API client
frontend/src/services/api.ts - Pickup client
frontend/src/services/coletasService.ts
API and access
- HTTP server
backend/src/server.ts - Auth routes
backend/src/routes/AuthRoutes.ts - Auth controller
backend/src/controllers/AuthController.ts - Auth service
backend/src/services/AuthService.ts - Pickup routes
backend/src/routes/ColetaRoutes.ts - Pickup controller
backend/src/controllers/ColetaController.ts - Authentication
backend/src/middlewares/AuthMiddleware.ts - Role checks
backend/src/middlewares/RoleMiddleware.ts
Pickup logistics
- Pickup service
backend/src/services/ColetaService.ts
Domain and persistence
- Pickup records
backend/src/models/ColetaModel.ts - Pickup items
backend/src/models/ItemColetaModel.ts - Waste types
backend/src/models/ResiduoModel.ts - Resident records
backend/src/models/MoradorModel.ts - Collector records
backend/src/models/EcoletorModel.ts - Cooperative records
backend/src/models/CooperativaModel.ts - Rewards transactions
backend/src/models/TransacaoModel.ts - Service reviews
backend/src/models/AvaliacaoModel.ts - Addresses
backend/src/models/EnderecoModel.ts - Database setup
backend/src/config/database.ts
Other components
- Resident
- Collector
- Cooperative
- Relational database
Connections 37
- Resident → Web routes: uses
- Collector → Web routes: uses
- Cooperative → Web routes: uses
- Web routes → Auth context: provides auth
- Resident screens → Pickup client: requests pickups
- Collector dashboard → Pickup client: manages pickups
- Cooperative dashboard → Pickup client: validates pickups
- Pickup client → API client: sends requests
- API client → HTTP server: HTTP requests
- Waste guidance → Resident: guides sorting
- HTTP server → Auth routes: dispatches
- HTTP server → Pickup routes: dispatches
- Auth routes → Auth controller: dispatches
- Auth controller → Auth service: calls
- Auth service → Resident records: checks credentials
- Auth service → Collector records: checks credentials
- Auth service → Cooperative records: checks credentials
- Pickup routes → Authentication: authenticates
- Pickup routes → Role checks: checks role
- Pickup routes → Pickup controller: dispatches
- Pickup controller → Pickup service: calls
- Pickup service → Pickup records: reads and writes
- Pickup service → Pickup items: saves items
- Pickup service → Waste types: looks up types
- Pickup service → Resident records: updates points
- Pickup service → Collector records: assigns collector
- Pickup service → Cooperative records: assigns destination
- Database setup → Relational database: initializes
- Database setup → Pickup records: registers entities
- Database setup → Pickup items: registers entities
- Database setup → Waste types: registers entities
- Database setup → Resident records: registers entities
- Database setup → Collector records: registers entities
- Database setup → Cooperative records: registers entities
- Database setup → Rewards transactions: registers entities
- Database setup → Service reviews: registers entities
- Database setup → Addresses: registers entities