One platform, two industries: salons and medical practices
ThinkCRM sells a CRM, calendar and point of sale to beauty salons and to medical practices. We built both editions on one shared platform, each made for its industry, and both carrying real money and regulated reporting.
The situation
ThinkCRM’s salon edition serves beauty salons and skin clinics. Its medical edition serves physiotherapy, paediatric and optician practices in Cyprus. Both run appointments, clients, payments and invoicing for many businesses at once.
What made it hard
Two industries with different rules had to share one platform, while handling live card payments, Greek e-invoicing and Cyprus national health-system (GESY) reporting that cannot be wrong.
What we did
- Built one Laravel platform with two editions that share most of their code, so a fix to the core reaches both and each industry keeps its own features.
- Built Viva online and in-store payments, other card terminals, SMS, VAT checks and myDATA e-invoicing into the shared platform.
- Added GESY support to the medical edition: visit counters, referrals, diagnosis history, and a patient app with bookings and payments.
- Gave each edition a mobile API for its staff and patient apps.
- Moved each practice’s history from the previous system, including a repair that relinked appointments to the right clients after a date-format fault in the old data.
Before and after
What we would do differently
Keeping two editions in step by porting features between them works, but it costs a little on every change. Our next step is a switch per edition inside a single codebase, and the gym platform is already built that way.
Built with
PHP · Laravel · Viva Payments · GESY · myDATA
More for ThinkCRM
Ready to build something great?
Tell us what’s breaking, or what you need built. You talk to the engineer who does the work.
