GB Dental is a dental clinic chain in Dhaka, Bangladesh, led by Chief Consultant Dr. Gobinda Bhowmik (BDS, MPH, FICCDE). GBM is its membership programme: patients join a plan and save up to 20% on dental treatments, without needing insurance.
I led the development of the GBM platform as a full-stack developer, from the membership and payment system to the smart cards and the admin panel.

Background
GB Dental wanted to reward loyal patients and make regular dental care more affordable. The idea was a membership platform with two parts.
Custom membership plans. The clinic designs its own plans. A patient subscribes to the plan that suits them and receives its benefits, such as consultations, X-rays, scaling and polishing, root canal treatment, crowns, implants and treatment discounts.
A smart membership card. Every member gets a card that works in two ways:
- As a smart visiting card. Tap it with an NFC phone and it shares the member's contact details and a business profile.
- As a patient card. Scan the same card at the clinic and staff see that patient's full treatment history.
The Challenge
Managing a large number of patients
The platform had to handle a growing base of patients, each with a profile, a plan, orders, a card and a treatment history. Staff need to find any patient quickly, and the history must stay accurate without manual record-keeping.
Flexible membership rules
No two plans are the same. Each plan has its own price and duration (from one year up to lifetime), and each benefit has its own usage limit: once, a set number of times, or once per year. The system had to track every member's remaining benefits and handle renewals and expiry, without a developer changing code whenever the clinic designs a new plan.
Reliable payments
Patients pay online, but some prefer to pay in cash at the clinic. Every payment, online or offline, had to activate the right membership exactly once, and every order needed a clear transaction record that matches the payment gateway.
The Solution
A plan builder for the clinic
I built plans out of reusable plan features. Admins create a feature once (for example, "Scaling & Polishing") and then build any plan from features, setting each one's usage limit, the plan price and its duration. New plans go live without any code changes.

When a member uses a benefit at the clinic, the usage is recorded against their membership. The system always knows what is left and when the plan expires or needs renewal.
Payments with SSLCOMMERZ and cash
Online payments go through SSLCOMMERZ. An order is only marked complete once the gateway confirms the payment, and each order keeps its own transaction ID, so a membership is activated once and every payment can be traced. Staff can also record cash payments, and those orders go through the same flow as online ones.

Smart vCards
Each member gets a smart vCard: a public profile with a share link, a QR code and an NFC-enabled card. Members fill it in from their own dashboard (basic details, experience, education, licences and certifications, and social links), so the card works as a full business portfolio, not just a contact card.

The same card opens the patient's treatment history when it is scanned at the clinic. The history is built automatically from their visits and benefit usage, so staff don't have to update it by hand.
Admin dashboard
The clinic's team runs everything from one admin panel: sales, orders, customers and sales representatives on the dashboard, plus users, vCards, balances, sales reports and system logs.

The platform is built with Laravel and MySQL, uses Alpine.js for interactive screens, and runs behind Nginx.
Results
- 1000+ patients managed on the platform.
- Automatic patient history for every member, available by scanning their card at the clinic.
- Smart vCards that members share by tapping an NFC phone, scanning a QR code or sending a link.
- Business portfolios for members, with experience, education, licences and social links.
- New membership plans launch without code changes, and every online and cash payment is traceable.