SafeLanka
A multilingual public-safety mobile app (emergency SOS, crime reporting, and traffic-fine payments) shipped to Google Play. A team project where I owned the traffic-fines system, the payment flow, and Lost & Found end-to-end.
Problem
Sri Lankans had no single app to raise emergencies, report crime with evidence, and settle traffic fines across three languages.
What I built
SafeLanka is a full-stack, role-based mobile app (Flutter + NestJS) built by a six-person team. My part: I designed and built the traffic-fines system end-to-end, covering the NestJS fines module and DTOs, the traffic-fine / payment-transaction / offense-schedule entities and the SQL migration behind them, and the Flutter payment screens with PayHere and a saved-cards flow. I also owned the Lost & Found / Items module across frontend and backend, and authored the CI/CD (deploy-production, deploy-staging and backend-CI workflows, plus the backend Dockerfile).
My role
Full-stack developer and top committer (190 commits). Owned: the traffic-fines system (schema, backend, and payment UI), the PayHere payment flow with saved cards, and Lost & Found / Items. Contributed to: crime reporting, auth and users, the location module, and the multilingual Google Gemini chatbot (English, Sinhala, Tamil).
Stack
- Flutter
- Dart
- NestJS
- TypeScript
- MySQL
- TypeORM
- Google Gemini
- PayHere
- JWT
Impact
- Traffic-fines schema and payment flow designed and shipped end-to-end.
- Secured with JWT, role-based access control, and OTP verification.
- Shipped to Google Play internal testing via GitHub Actions to Railway.