A privacy-first, automation-driven platform that connects patients with verified blood donors in minutes.
RoktoDut is a full-stack, production-grade blood donor discovery system built for Bangladesh. It prioritizes speed in emergencies, trust in identities, and privacy in contact sharing through automation, verification, and real-time analytics.
- No-login emergency search with smart ranking to surface reliable donors first.
- Privacy shield that hides phone numbers until a human verification step passes.
- Truth Loop verification to confirm donations without manual follow-up.
- Live demand heatmap across all districts for supply-vs-demand visibility.
- QR Smart Card verification for NID-verified donors with controlled disclosure.
- Donor discovery & smart ranking: availability, verification tier, and reliability scoring.
- Emergency request flow: public blood requests with response tracking and urgency sorting.
- Donation verification: claim → recipient confirmation → automated cooldown.
- Gamification: points, badges, and national leaderboards to drive retention.
- Organization panel: hospitals/blood clubs can verify and manage members.
- Content platform: health blogs and verified success stories.
- PWA + FCM: offline fallback and push notifications for critical alerts.
- Real-time & automation: queues, scheduled jobs, and alerts via Telegram.
| Layer | Tech |
|---|---|
| Backend | Laravel 12, PHP 8.2, MySQL, Redis, Sanctum, Reverb |
| Frontend | Blade, Tailwind CSS, Alpine.js, Vite |
| Maps & Analytics | Leaflet, GeoJSON, custom spatial analytics |
| Notifications | Firebase (FCM), Telegram Bot |
| ML Service | FastAPI + scikit-learn (donor ranking) + Groq (NLP request parsing) |
- Phone numbers are masked by default and only revealed after a challenge + rate limit.
- QR tokens are opaque and cannot be enumerated from user IDs.
- NID data retention is time-bound and automatically purged.
- Audit trails and shadow-ban keep suspicious activity contained.
Prerequisites: PHP 8.2+, Composer, Node.js 18+, MySQL 8+, Redis
- Install dependencies:
composer installnpm install
- Configure environment:
copy .env.example .env- Update DB, Redis, Firebase, and OAuth settings in
.env
- Bootstrap app:
php artisan key:generatephp artisan migrate
- Build assets:
npm run build
Run locally:
composer run dev(Laravel server + queue + logs + Vite)
Prerequisites: Python 3.10+
- Install dependencies:
pip install -r roktodut-ml-service\requirements.txt
- Run API:
uvicorn roktodut-ml-service.main:app --host 127.0.0.1 --port 8001
Required env: ROKTODUT_API_KEY (or default ROKTODUT_AI_SECRET), GROQ_API_KEY for NLP parsing.
| Task | Command |
|---|---|
| Run dev stack | composer run dev |
| Build assets | npm run build |
| Run tests | composer run test |
| Ops check | composer run ops-check |
| Smoke check | composer run smoke-check |
| Name | Role / Contribution | GitHub |
|---|---|---|
| Jahid Hasan | Lead Backend, Database Architecture, Security | @jahidstm |
| Md. Alif Khan | Frontend Refactoring, API Integration, UI Components | @3alif |
| Nohzat Tabassum | UI/UX, OAuth Integration, System Documentation | @NohzatTabassum |
| Mst. Moumita Rahman Meem | Database Seeders, Localization, Demo Data | @Meem-1137 |