Marketplace product · Doctor Booking & Online Consultation Platform
Medist
A bilingual doctor-booking and online-consultation platform with a public site and three panels (patient, doctor and admin), shipped as a self-hosted product that installs on shared hosting.
- My role
- Took over and rebuilt: redesign, booking engine, video visits, integrations, release
- Year
- 2026
- Built with
- Next.js 14 · React & TypeScript · Laravel · MySQL
By the numbers
- 3 Role-based panels
- 41 App pages
- 51 Database tables
- 3 SMS providers
The Challenge
I inherited a half-finished Next.js frontend from another developer and a purchased Laravel backend. Neither was ready to sell: Persian and Jalali support had gaps, payment code targeted gateways Iranian users can't use, and the online-visit feature was hardwired to a single domain.
The product also had to run on ordinary shared hosting with no Node.js, because that is what its buyers have.
The Approach
I redesigned every screen around one design system and made the whole app bilingual with Jalali dates throughout. I rebuilt the booking engine around weekly schedules, exceptions and slot lengths, and built online visits from scratch: in-app chat plus WebRTC voice and video calls with ICE restart, rejoin and a TURN server.
The frontend became a static export served by Laravel, with configuration injected at runtime so one build works on any domain. I also added Zarinpal and a wallet, three SMS providers, a web installer and a security pass covering ownership checks, rate limits and upload sniffing.
The Outcome
Version 1.0.0 shipped as a complete marketplace package with a web installer, a Persian guide and a full screenshot set. Patients book, pay and visit online. Doctors manage schedules, earnings and articles. Admins approve doctors, handle payouts and configure SMS, payments and branding without touching code.
What I built
-
Three panels: patient, doctor and admin, plus a public site with doctor search
-
Booking engine: weekly schedules, exceptions and a Jalali slot picker
-
Online visits: chat plus WebRTC voice and video with TURN and auto-rejoin
-
Zarinpal and wallet checkout with coupons; three SMS providers for OTP
-
Static Next.js build served by Laravel, so no Node.js is needed on the host
-
Web installer, runtime branding and a security hardening pass
Gallery
-
Home: doctor search, specialties and visit types -
Doctor search with specialty, gender, province and visit-type filters -
Slot picker on the Jalali calendar -
Checkout with coupon, Zarinpal or wallet -
Online visit room: chat, voice and video -
Doctor dashboard: today, upcoming visits and earnings -
Weekly working hours and slot length -
Admin dashboard: pending work and monthly stats -
Appointments management -
SMS settings with test sends
Built with
More work
Interested in working together?