A production-ready full-stack waste management platform built with Django REST Framework, Flutter, and PostgreSQL, designed to help municipalities efficiently monitor waste bins, optimize collection routes, and enable citizens to report waste-related issues in real time.
Sankalan demonstrates modern backend engineering practices including JWT Authentication, RESTful API Design, PostgreSQL, API Documentation, Containerized Deployment, Production-ready Security, and Cloud Deployment.
🔗 https://sankalan-zeta.vercel.app/
🔗 https://sankalan.onrender.com/
🔗 https://sankalan.onrender.com/api/docs/
- Django 5
- Django REST Framework
- PostgreSQL (Neon Database)
- JWT Authentication (SimpleJWT)
- RESTful API Architecture
- OpenAPI / Swagger Documentation
- Docker
- Gunicorn
- WhiteNoise
- Render Deployment
- Vercel Deployment
- CORS Configuration
- Environment-based Configuration
- HATEOAS API Responses
- Pagination
- Filtering
- Search
- Ordering
- Production Logging
- User Registration
- Username & Password Login
- JWT Authentication
- Refresh Tokens
- Protected API Endpoints
- Create Waste Bins
- Update Bin Status
- Delete Waste Bins
- Live Bin Monitoring
- Bin Fill Levels
- Bin Availability Status
Citizens can report:
- Illegal Waste Dumping
- Overflowing Bins
- Waste Locations
Users can request installation of new waste bins with location and reason.
- Total Waste Bins
- Empty Bins
- Half Filled Bins
- Full Bins
- Collection Efficiency
- Daily Activity
- Waste Reports Statistics
Automatically generates optimized waste collection routes using geographic coordinates.
Flutter Web
│
▼
REST API (Django REST Framework)
│
JWT Authentication
│
Business Logic
│
PostgreSQL (Neon)
backend/
│
├── auth/
├── wastebins/
├── admin_side/
├── trash_tracker_backend/
│
frontend/
│
├── lib/
├── screens/
├── widgets/
├── services/
├── models/
└── providers/
git clone https://github.com/Upendra48/Sankalan.git
cd Sankalancd backend
python -m venv venv
source venv/bin/activateWindows
venv\Scripts\activateInstall dependencies
pip install -r requirements.txtCreate a .env
SECRET_KEY=your_secret_key
DEBUG=True
DATABASE_URL=postgresql://username:password@host/database
ALLOWED_HOSTS=localhost,127.0.0.1Run migrations
python manage.py migrateCreate superuser
python manage.py createsuperuserRun server
python manage.py runservercd frontend
flutter pub get
flutter run- Render
- Docker
- Gunicorn
- WhiteNoise
- Neon PostgreSQL
- Flutter Web
- Vercel
Authentication
POST /api/auth/register/
POST /api/auth/login/
POST /api/auth/token/refresh/
GET /api/auth/me/
Waste Bins
GET /api/waste-bins/
POST /api/waste-bins/
PATCH /api/waste-bins/{id}/
DELETE /api/waste-bins/{id}/
Reports
GET /api/waste-reports/
POST /api/waste-reports/
Requests
GET /api/bin-requests/
POST /api/bin-requests/
Analytics
GET /api/waste-bin-analytics/
GET /api/collection-routes/
All protected endpoints require
Authorization: Bearer <JWT_TOKEN>
This project was built to demonstrate real-world backend engineering practices rather than simple CRUD operations. It includes secure authentication, REST API design, PostgreSQL integration, cloud deployment, API documentation, optimized routing, production-ready configuration, and a responsive Flutter frontend.
Upendra Raj Joshi
Backend Developer | Django | Flutter | REST APIs | PostgreSQL
GitHub: https://github.com/Upendra48
LinkedIn: https://www.linkedin.com/in/upendra48/