Back to Home

Projects

var(--variable-cM9ypOjZX)
var(--variable-cM9ypOjZX)

FaceBar

FaceBar’s clinic platform — an Angular public site with online booking, a staff dashboard for appointments and requests, and an ERP-style client and payment ledger, delivered end to end with localization and a Docker/Nginx pipeline.

My Role

Tech Lead — architecture and delivery of the full platform: the Angular booking front end, the staff dashboard, ERP-style client management with payment accounting, localization, deployment, and client communication.

Project Type

Client Project — a growing aesthetic clinic’s marketing site, online booking, and internal operations in one system.

Tools Used

Angular, TypeScript, online booking engine, staff dashboard, ERP-style client & payment accounting, i18n, Docker, Nginx, custom CI/CD

Live Link

https://facebar.ge

Problem & Solutions

Modeling a Clinic’s Catalog

Problem

Dozens of treatments, the devices behind them, and the specialists who perform them — related data that a flat page structure kept duplicating and letting drift out of sync.

Solution

Treatments, technologies, and specialists became linked entities in the CMS; catalog pages, filters, and booking options are generated from the relationships.

Booking That Staff Can Actually Run

Problem

Online booking is only useful if the front desk trusts it: double bookings, unconfirmed slots, and lost requests turn a feature into a liability.

Solution

A staff dashboard sits on the same booking data — appointments, requests, and confirmations in one queue — so the online calendar and the front desk never disagree.

Payments and Client History in One Place

Problem

Client records, visit history, and payments lived in separate tools, so every question about a client meant three lookups.

Solution

An ERP-style client module keeps visits and payment accounting on one record, giving the clinic a single source of truth and reporting without exports.

Architecture

ARCHITECTURE
FaceBar
Hover a part to see why it is there · click to pin
ApplicationDataExternal / peopleInfrastructure

One Angular front end for patients, a staff dashboard on the same booking data, and an API that owns availability, client records, and payment accounting.

Decision log

The calls that shaped the build — what was decided, why, and what it cost.

Treatments, technologies, and specialists as linked entities

Decision. Model the clinic's catalog as related content types instead of standalone pages.

Context. Flat pages duplicated the same equipment and specialist details across dozens of treatments and drifted out of sync.

Consequence. Catalog pages, filters, and booking options are generated from the relationships; an edit happens once.

The staff dashboard reads the same booking data

Decision. Build the front-desk dashboard on the booking records rather than syncing to a separate calendar tool.

Context. Online booking is only trusted if the front desk cannot be surprised by it.

Consequence. The online calendar and the front desk never disagree. More scope for the team, but no integration to babysit.

Client ledger inside the platform

Decision. Keep client records, visit history, and payment accounting in one module.

Context. Every question about a client meant three lookups across three tools.

Consequence. A single source of truth and reporting without exports. The platform became an operations system, so backups and uptime became first-class requirements.

A Treatment Catalog Built for Booking

Treatments, technologies, and specialists are structured data, so every catalog page ends in a booking action instead of a phone number.

Equipment as Content

Each treatment links to the medical technology behind it; the clinic maintains both from the same CMS, and the site cross-references them automatically.

From Browsing to a Confirmed Slot

The booking flow checks availability, captures the client, and lands in the staff dashboard — the same record the ERP side bills against.

Growth & Outcome

Patients discover treatments and book online, staff manage appointments and client records from one dashboard, and payments are accounted in the same system — one platform where a website, a booking widget, and spreadsheets used to be.

Gallery