← Все проекты

Кейс · Go-бэкенд

Запись на приём

Онлайн-запись на услуги: свободные слоты с учётом длительности и рабочих часов, защита от двойной записи, админ-панель. Вымышленная студия, демо.

  • Go
  • SQLite
  • Docker

01 · Как выглядит

Скриншоты

Скриншот проекта «Запись на приём» на экране 1280 пикселей
Десктоп, 1280 px
Скриншот проекта «Запись на приём» на экране телефона, 390 пикселей
Телефон, 390 px

02 · О проекте

Что это и зачем

Онлайн-запись для вымышленной студии: клиент выбирает услугу, день на две недели вперёд, свободное время и оставляет контакт. Владелец управляет всем в админке.

Слоты считаются по длительности услуги, рабочим часам дня недели и уже занятым интервалам. Двойная запись исключена на уровне транзакции и уникального индекса.

Ограничения

Студия, услуги и цены вымышлены. Токен админки задаётся переменной ADMIN_TOKEN, иначе генерируется и печатается в лог.

Что внутри

  • Расчёт свободных слотов с шагом 30 минут
  • Проверка пересечений в транзакции плюс частичный UNIQUE в SQLite
  • Админка: записи, услуги, часы работы, закрытые даты
  • Часовой пояс из переменной окружения, tzdata встроена в бинарник
  • Тесты и Docker

03 · Как запустить

Запуск одной командой

git clone <репозиторий по запросу> booking-slots
cd booking-slots
go run .   # http://localhost:8083, админка /admin

04 · Код

Репозиторий приватный

Исходники лежат в приватном репозитории. Открою доступ по запросу: напишите, и пришлю приглашение.

Запросить код