Muhammad Arslan
Нанять меня
Назад к проектам

Meridian Dental

Маркетинговый сайт, портал для пациентов, AI-ассистент для записи и консоль администратора для частных стоматологических практик, спроектированные в виде готового пакета, который клиника может купить прямо с полки.

Роль: Solo full-stack design and developmentСроки: 2026Тип: Productised web app

Next.js 16

React 19

Tailwind CSS 4

shadcn/ui

Supabase

Resend

Gemini AI

FullCalendar

Демонстрационная главная страница Meridian Dental Studio и точка входа в онлайн-запись

Обзор

Meridian Dental — это полноценное веб-представительство и легковесная консоль управления для частной стоматологической практики. Публичная часть представляет собой презентабельный маркетинговый сайт со страницами услуг, команды, контактов и удобным пошаговым оформлением записи. Внутренняя инфраструктура включает портал для пациентов, AI-ассистента, который отвечает на вопросы и бронирует слоты, а также консоль администратора, где клиника управляет всеми процессами. Я разработал это решение как коммерческий готовый продукт, включающий разовую покупку сайта плюс ежемесячный тариф, а не как индивидуальную заказную разработку. По своей концепции система дополняет существующую систему управления пациентами клиники, а не пытается полностью ее заменить.

Проблема

Частные стоматологические клиники обычно сталкиваются с плохим выбором. Они могут получить симпатичный сайт-брошюру, который не делает ничего, кроме указания номера телефона, или они могут платить за тяжелое программное обеспечение для управления практикой, которое работает с записями, но никак не помогает пациентам бронировать онлайн или получать ответы на вопросы. Никто не предлагал промежуточный вариант: сайт, который выглядит профессионально, позволяет пациентам обслуживать себя самим, отвечает на рутинные вопросы и дает стоматологу простое место для управления всем этим без контракта на ПО за шестизначную сумму.

Моя роль и подход

Я спроектировал и создал весь проект самостоятельно — от продуктовой логики до технической реализации. Значительная часть работы заключалась в том, чтобы решить, от чего стоит отказаться. Продукт сознательно не пытается конкурировать с тяжелыми комплексными системами управления клиникой, фокусируясь на точке первого контакта: записи на прием, общении с пациентами и компактной операционной панели. Такая дисциплина позволила выпустить продукт в разумные сроки и сформировать четкую ценность, за которую готовы платить.

Стек технологий

ФреймворкNext.js 16 (App Router, Turbopack) with React 19
Стилизация / UITailwind CSS 4 with shadcn/ui
БэкендSupabase (Postgres, Auth, Storage)
EmailResend with React Email templates
AIVercel AI SDK v6 with Google's Gemini 2.5 Flash
РасписаниеFullCalendar v6
Формы и валидацияreact-hook-form with Zod
АнимацияGSAP

Ключевые особенности

Публичный маркетинговый сайтглавная страница, услуги, команда, контакты, страховка, страницы для новых пациентов и пошаговый мастер онлайн-записи.
Аккаунты пациентовбеспарольный вход через magic links от Supabase.
Портал для пациентовприватный дашборд для записей и управления профилем.
AI-ассистентчат-бот на базе Gemini, который отвечает по рабочему документу клиники и может выполнять реальные действия через вызовы функций (tool calls), включая запись на прием, отправку контактного сообщения или открытие нужной страницы услуги.
Панель администраторауправление лидами, редактирование документа знаний чат-бота, создание, изменение и удаление услуг и стоматологов, просмотр бронирований и календарь с переносом записей перетаскиванием.
Защита от двойного бронированиясистема делает двойное бронирование у одного стоматолога невозможным на уровне базы данных, а мастер бронирования затемняет недоступное время до того, как пациент успеет его выбрать.

Галерея

Процесс записи Meridian с демонстрационными врачами и визитом на отбеливание зубов
Календарь записи Meridian с демонстрационными слотами времени и расчетом стоимости визита

Сложности и решения

Самой важной инженерной задачей было двойное бронирование. Ситуация, когда два пациента одновременно нажимают «подтвердить» на один и тот же слот — классическое состояние гонки (race condition), и проверки доступности на уровне кода приложения никогда не закрывают эту брешь полностью. Я решил эту проблему в Postgres с помощью ограничения исключения GiST (exclusion constraint), поэтому сама база данных атомарно отклоняет любые пересекающиеся записи к одному и тому же врачу. Конфликт становится не просто маловероятным, а невозможным. Отдельный эндпоинт доступности передает данные в мастер записи, заранее делая недоступные слоты неактивными, поэтому пациенты практически никогда не сталкиваются с ошибками.

Еще одной интересной частью стал AI-ассистент. Чат-бот для медицинской практики не может придумывать факты. Я привязал его к рабочему документу клиники, так что его ответы берутся из реального, редактируемого контента, который контролирует стоматолог, и дал ему небольшой набор инструментов вместо свободного общения. Он может записать на прием, отправить сообщение или открыть страницу, и ничего больше. Стоматолог редактирует базу знаний напрямую из консоли администратора, поэтому ассистент остается актуальным без участия разработчика.

Результат

Meridian Dental — это работающий продукт, готовый к демонстрации. Клиника может увидеть свой сайт, пациент может записаться через AI-ассистента или мастер записи, а бронирование в реальном времени попадает в календарь администратора с защитой от конфликтов в расписании на уровне базы данных. Он упакован как повторяющееся предложение, а не индивидуальная сборка, что делает его одновременно и элементом портфолио, и настоящим коммерческим шаблоном.

Столкнулись с похожей продуктовой задачей?

Расскажите о текущем состоянии продукта, необходимом результате и имеющихся ограничениях. На основе этого я сформулирую понятный первый этап.

Услуги разработки веб-приложений
Заполнить бриф проекта
Все проектыСледующий проектHalatap
Meridian Dental: Портал для пациентов и AI-запись для стоматологов | Muhammad Arslan