A full-stack healthcare ecosystem with five distinct user roles — Patient, Doctor, Pharmacy Seller, Delivery Boy, and Admin — bringing AI-optimised medicine discovery, live video consultations, OpenStreetMap tracking, subscription monetization, and governance into one unified platform. Built with Next.js, Express, MongoDB, and Socket.io.

Finding the right medicine shouldn't mean calling five pharmacies. Most patients either rely on a single pharmacy near them or waste time searching online with no real-time stock information. MediFind was built to close that gap.
MediFind is not a single-user product. It is a five-role ecosystem with an integrated Pro subscription system (pricing plans at ₹999/month and ₹833/yearly) for Sellers and Doctors. Each actor has their own dedicated dashboard, workflow, and set of responsibilities. A Patient searches and orders medicines, books doctor consultations with 15-minute slot intervals, makes payments, tracks deliveries in real time, and submits doctor reviews. A Doctor manages their weekly availability, accepts consultation bookings, conducts secure Jitsi video calls directly in the app, and writes digital health reports. A Pharmacy Seller lists medicines, manages their live inventory, processes incoming orders, tracks earnings, and views detailed sales analytics on their top products. A Delivery Boy receives real-time order pickup notifications, views customer drop-off details, and uses a live route map powered by OpenStreetMap for tracking. An Admin governs the entire platform — approving registrations, managing disputes, and monitoring operations and active plan subscribers.
I built every one of these roles independently — from the per-role authentication system and dashboards to the real-time Socket.io notification layer that connects all five actors. No role was an afterthought.
Every healthcare interaction has multiple participants. Most apps solve for one of them — the patient — and leave the rest operating on WhatsApp groups and spreadsheets. MediFind was designed from the start to be the single source of truth for all five actors simultaneously.
Real-time inventory and AI-optimised fulfillment. If a medicine shows as in stock, it is in stock — pharmacy sellers update their catalogue live and stock changes propagate instantly. If a patient needs multiple medicines, an AI-powered fulfillment engine resolves generic names and applies a greedy set-cover algorithm to split orders optimally across the fewest, nearest pharmacies. When a patient orders, the pharmacy seller sees it immediately. When it ships, the delivery boy's queue updates. When it arrives, the patient gets a confirmation. Every transition is tracked. Nothing falls through.
The Patient logs in and lands on a location-aware search. They type a medicine name, grant location, and see a live list of nearby verified pharmacies — each with stock count, price, distance, and license details. They can add to cart, review the order summary with GST breakdown, and check out. They can also browse the Consultation section, pick a doctor by specialisation, book a slot, and join a Jitsi video call at the scheduled time. After the call, a digital health report appears in their profile.
The Pharmacy Seller has a dedicated dashboard where they list medicines, set prices, and manage inventory. When an order comes in, a Socket.io notification fires instantly. They review the order, confirm it, and hand it to a delivery boy. Their earnings ledger updates with every fulfilled order. The Doctor sets weekly availability, receives booking notifications, and joins consultations through the built-in Jitsi room. Post-consultation, they fill a structured health report that is immediately visible to the patient. The Delivery Boy sees a queue of assigned orders, picks them up from the pharmacy, updates status to 'Picked up' and 'Delivered', and the patient's tracking view updates in real time. The Admin can view all registered users, approve or reject pharmacy and doctor applications, flag suspicious activity, and access platform-wide analytics — orders, revenue, active users, and disputes — from a single control panel.

MediFind is a full-stack healthcare platform built with Next.js on the client and Express on the server, with MongoDB as the database and Socket.io powering all real-time updates across five user roles — patient, doctor, pharmacy seller, delivery boy, and admin. No role shares a dashboard. Every actor has their own purpose-built surface.
Server-rendered React with five separate dashboard experiences — one per role. Incorporates OpenStreetMap for live route mapping, Jitsi Iframe API for secure video consultations, and GSAP/CSS animations.
RESTful Express API with role-based access control. Implements RAG-powered generic name mapping and a Greedy Set-Cover algorithm to split orders optimally across sellers.
MongoDB stores users, medicines, bookings, and subscription plan states. Socket.io broadcasts order events and delivery updates instantly, while Jitsi handles encrypted video rooms.
Every key action — new order placed, order picked up, delivery confirmed, consultation booked — fires a Socket.io event that updates the relevant dashboard instantly. No polling, no refresh.
Muhammed Safvan is a full-stack web engineer who builds products end to end: interfaces in Next.js and React, APIs in Express and Node, real-time layers in Socket.io, and MongoDB databases that keep five distinct user roles in sync.
MediFind is a self-initiated product built to solve a real problem in healthcare access — one platform connecting patients, doctors, pharmacy sellers, delivery boys, and administrators without a single spreadsheet. Currently open to full-time roles and freelance builds.