Рішення · Стоматологічні клініки
Список послуг із позначкою покриття через обов’язкове страхування, який може редагувати рецепція, — не PDF з цінами, надісланий електронною поштою.
Сайт стоматологічної клініки оцінюють за одним: чи знаходить людина потрібну їй послугу, з її ціною та одиницею — за зуб, за щелепу, за сеанс — і чи знає вона, входить це в страхування чи ні. Решта — декор. Ми будуємо структуру, що це утримує, і панель, з якої персонал змінює її самостійно.
Вже збудованоРоботу можна перевірити ззовні прямо зараз: публічні дані районного стоматологічного центру, яким ми керуємо, подаються як структурований файл — 89 послуг, кожна з категорією, підкатегорією, назвою, ціною, одиницею виміру та індикатором придатності для обов’язкового страхування, з яких 27 позначені як придатні; 7 категорій і 10 підкатегорій, перевірених нами 06.09.2026. Друга частина доказу — це захист, із diff в історії: під час приймання пароль адміністратора порівнювався в браузері й потрапляв у публічний JavaScript-пакет, а записи в інтерфейс програмування могли робити будь-хто з інтернету. Коректне уточнення, щоб не приписувати собі більше, ніж наше: перша версія сайту не наша. Внесок, який можна показати з diff, — це приймання, захист, типи, безперервна інтеграція та гігієна залежностей.
Стоматологічна клініка не продає «послуги». Вона продає дуже довгий список тарифних позицій з одиницями, які не схожі ні на що в іншій сфері: за зуб, за щелепу, за видалення, за пролікований випадок, за сеанс, за візит, за втручання. Людина, яка шукає в інтернеті, не шукає клініку, а шукає свою позицію: скільки коштує видалення, чи оплачується за зуб або за візит, чи покривається страхуванням. Сайт, який відповідає на це, корисний; той, що має сторінку «Ціни» з прикріпленим PDF, — ні.
Друга річ, яку вимагає реальність клініки, — щоб список можна було змінювати без програміста. Тарифи змінюються, лікарі змінюються, графік невідкладної допомоги взимку оголошують інакше. Якщо кожна зміна проходить через розробника, список залишається старим і за кілька місяців пацієнти приходять із ціною минулого року. Структура, яку ми будуємо, тримає публічні дані — послуги та команду — у структурованих файлах, які читають і інтерфейс програмування, і безпосередньо видима частина сайту, а персонал редагує їх із панелі.
Третя річ, яку ніхто не просить у брифі й яка має найбільше значення, — хто може записувати в цей список. Під час приймання проєкту, про який ми тут пишемо, будь-хто з інтернету міг надіслати запис до інтерфейсу програмування, а пароль панелі потрапляв у пакет JavaScript, який видавався браузеру, — бо його перевірка виконувалася в браузері. Ми перенесли перевірку на сервер: пароль більше не залишає сервер, натомість повертається підписаний токен, дійсний дванадцять годин, з лімітом у вісім спроб за п’ятнадцять хвилин на IP-адресу та порівняннями в сталий час; інтерфейс слухає лише на локальній адресі, тож вебсервер — єдиний публічний шлях.
Маркування покриття через обов’язкове страхування заслуговує окремого речення, бо це поле з найбільшою цінністю для пацієнта і з найбільшим ризиком для клініки: це твердження з наслідками. Тому воно живе як дані, відредаговані установою, а не як текст, написаний нами на сторінці; ми будуємо поле, відображення і можливість виправити його за хвилину.