Smart Waste
Management System
SWMS · Arabic product framing «نظيف» · Cross-platform Flutter
Cross-platform smart waste operations app that connects citizens, field workers, supervisors, and administrators on a single map-first experience—prioritizing urgent bins, guiding crews with real road routes, and turning citizen reports into actionable work.
Alternate tagline: From full bins to fixed routes—one Flutter app for the whole sanitation chain.
My role: End-to-end Flutter client—architecture, multi-role UX, maps, routing, and domain modeling
Material 3 RTL-first (ar-SA) Server-ready repositories
Urban waste infrastructure is spread out and opaque: people do not always know where the nearest bin is, whether it is safe to use, or how to escalate odor, leaks, or overflow. Operations teams lack a shared picture of container health (fill, gas risk, power) and clear priorities for who goes where first.
SWMS is a digital operations layer for a municipality or private waste company: one mobile client with role-based experiences so the same codebase serves the public (discovery and reporting) and the workforce (execution and oversight). Ideation centered on the map as the primary surface, sensor-style bin intelligence, and Arabic-first UX for real deployment in MENA contexts.
Citizens and workers live on Google Maps with OSRM-backed road geometry where possible.
Citizen, worker, supervisor, and admin—strict route separation via go_router.
Repository contracts so mock or SharedPreferences data swaps for REST without rewriting UI.
A Flutter application branded in-app as Smart Waste Management System (SWMS) with Material 3, RTL Arabic default (Locale('ar', 'SA')) and English in supported locales, responsive layout (flutter_screenutil and adaptive containers), and a green-forward visual system (Cairo via Google Fonts, seeded sustainability palette in app theme).
Bins are modeled as intelligent assets: fill percentage, gas level, battery and health, maintenance flag, timestamps, priority from operational rules (BinEntity / calculatePriority), and history readings—so the UI explains why something is urgent, not only where it is.
UserRouteService) with haversine fallback when routing fails.image_picker, severity) through ReportBloc and repository pattern, plus history so users see follow-through.BinBloc for spatial context; accept/complete workflows at the repository boundary.How to phrase it for stakeholders: Admin sets the system; supervisors run the teams; workers close the loop on the ground; citizens supply ground truth through reports.
| Role | In the product | In the app |
|---|---|---|
| Citizen | Public stakeholder | Map of bins, bin details/history, OSRM-backed navigation where possible, report issues with media, report history. |
| Worker | Execution | Dashboard and profile; jobs list with types and locations; map co-loaded with bins; accept/complete assignments. |
| Supervisor | Middle management | Dashboard sub-routes: overview, tasks, worker roster, add worker—coordination between strategy and crews. |
| Admin | Org owner | Org-wide statistics and quick actions for supervisors, workers, and geographic areas. |
main.dart; documented map degradation (placeholder/list fallback when Maps API key is missing) so demos do not hard-crash on misconfiguration.ServiceLocator), shared_preferences on auth/reports paths, google_maps_flutter, geolocator, http (OSRM), image_picker, intl, equatable.Features/ (auth, user, Worker, Superviser, Admin) plus shared core for bin domain and presentation.AuthRepository, ReportRepository, WorkerJobRepository, BinRepository—so BLoCs depend on contracts, not concrete APIs.UserType in app_router.dart).MaterialApp.router title “Smart Waste Management System”—SWMS used consistently in portfolio and demos.The graduation notes in the repo describe current bin lists and some flows as local/mock or SharedPreferences-backed while the architecture is server-ready—the same screens and state machines can call REST or GraphQL once repository implementations point at your API.
Subtitle (60–90 chars):
Flutter SWMS: maps, citizen reports, worker jobs, supervisor ops, admin KPIs—RTL-first.
One-line pitch: Cross-platform smart waste operations app connecting citizens, crews, supervisors, and admins on one map-first experience.
الفكرة: تطبيق نظام إدارة نفايات ذكي يربط المواطن بخريطة الحاويات والإبلاغ عن المشاكل، ويربط العامل بمهام مرتبة ومكانية، والمشرف بإدارة الفريق والمهام، والمدير بنظرة إحصائية وتشغيلية على المنظومة.
التقنية: Flutter مع فصل الطبقات (Domain / Data / Presentation) وإدارة الحالة BLoC وتوجيه go_router، وخرائط Google مع مسارات طرق عبر OSRM، وتجربة عربية كاملة اتجاه RTL.