Retina — Diabetic Retinopathy Classifier (MVP)
Role: ML Engineer & Backend — Sole developer for the MVP; later provided documentation and mentoring for students who extended the project.
Project summary
An educational MVP designed to demonstrate an end-to-end retinal screening workflow. The system provides separate portals for patients and ophthalmologists: patients can book appointments and view their reports, while doctors manage schedules, review images and approve automatically-generated reports. The project included an integrated classification model (converted to an H5 inference file) that accepts retinal images and returns a probability score for diabetic retinopathy.
I built the MVP end-to-end and then supported a group of students by preparing documentation (DB diagrams, table relations, and pipeline notes) and explaining complex operations such as the booking workflow and the image-analysis pipeline.
Key features
- Dual portals: patient-facing booking & report pages, and doctor-facing appointment management and image review.
- Model integration: accepted a third-party retina model, converted to H5 for serving, and wired into the inference pipeline to return DR probability scores and confidence metadata.
- Dynamic reports & prescriptions: generate clinician-approved reports and dynamic prescriptions based on clinic findings or automated image analysis.
- Realtime chat: doctor–patient communication via WebSocket-based chat (Django Channels) with private rooms for each consultation.
- Educational deliverables: DB diagrams, relations and pipeline documentation produced for students and maintainers.
Model & inference notes
The classification model was provided by a third party and converted to an H5 file for ease of serving. Inference is run server-side and returns a probability score and an optional explainability overlay (saliency/heatmap) that the doctor can inspect before validating results. Low-confidence cases are flagged for manual review and included in the clinician sign-off workflow.
Reports and prescription drafts created from model outputs require clinician approval before being published to the patient's portal.
Realtime collaboration & UX
Implemented real-time doctor–patient chat and notification channels using WebSockets and Django Channels. Each consultation has a private chat room and event stream for status updates (appointment, report ready, review requested). Frontend interaction is implemented in Vanilla JavaScript for lightweight integration into the portals.
Educational support & documentation
After delivering the MVP I prepared supporting materials to help students understand and extend the system: database diagrams, table relation explanations, and pipeline walkthroughs (especially for the booking flow and the image-analysis submission/validation cycle).
This material was used as a baseline for student assignments and to onboard new contributors safely and quickly.
Tech stack (concise)
- Model serving: containerized REST endpoints (TF Serving / simple H5 loader)
- Backend: Django & Django REST Framework
- Async & realtime: Redis + Celery, Django Channels for WebSockets
- Frontend: Vanilla JavaScript for lightweight portals
- Data store: PostgreSQL; code & collaboration: GitHub
Impact & next steps
- Delivered a working MVP that demonstrates automated retinal screening inside a clinical booking workflow.
- Provided documentation and guidance enabling students to extend the system into production-ready flows.
- Suggested next steps: formal external validation, robust explainability modules, and integration with clinic EHRs for automated reporting.