Backend API барбершопа «Гётин» с CMS
Назад к проектам

Backend API барбершопа «Гётин» с CMS

REST API на Go с административной панелью для управления контентом салона

Backend API барбершопа «Гётин» с CMS

О проекте

Полнофункциональный REST API для управления контентом и взаимодействия с клиентами барбершопа. Проект включает публичные endpoints для фронтенда и защищенную административную панель с JWT-аутентификацией.

Технологический стек

Backend:

  • Go 1.25 — высокопроизводительный язык программирования

  • Echo v4 — минималистичный и быстрый веб-фреймворк

  • GORM v1.31 — мощный ORM с поддержкой миграций

  • SQLite3/PostgreSQL — гибкая поддержка баз данных

Аутентификация и безопасность:

  • JWT (golang-jwt/jwt/v5) — токен-based аутентификация

  • bcrypt — хеширование паролей

  • Yandex Smart Captcha — защита от спама

  • CORS middleware — контроль доступа

  • go-playground/validator — валидация данных

Обработка изображений:

  • disintegration/imaging — манипуляции с изображениями

  • gen2brain/heic — поддержка HEIC формата

  • chai2010/webp — конвертация в WebP

  • galdor/go-thumbhash — генерация blur-placeholders

  • rwcarlsen/goexif — обработка EXIF метаданных

Интеграции:

  • gomail.v2 — отправка email-уведомлений

  • Yandex SMTP — почтовый сервер

  • Smart Captcha API — валидация капчи

Developer Experience:

  • Swagger/Swaggo — автогенерация API документации

  • Goose v3 — версионирование базы данных

  • Cobra — CLI интерфейс

  • Air — live reload в dev режиме

  • godotenv — управление переменными окружения

Архитектура

Проект построен по принципам Hexagonal Architecture (Ports & Adapters) для обеспечения тестируемости и независимости от внешних зависимостей.

Технические решения

Image Processing Pipeline:

  • Multi-format поддержка — JPEG, PNG, WebP, HEIC конвертация

  • Thumbhash генерация — создание blur-placeholders для lazy loading

  • EXIF извлечение — автоматическое чтение метаданных

  • Автоматическая оптимизация — сжатие и изменение размеров

  • Сохранение пропорций — умное кадрирование изображений

Email Notification System:

  • Event-driven архитектура — слушатели событий для отправки писем

  • SMTP конфигурация — Yandex Mail с SSL/TLS поддержкой

  • Template система — HTML шаблоны для уведомлений

  • Множественные получатели — рассылка на несколько адресов

  • Асинхронная отправка — неблокирующая обработка

Database Layer:

  • Dual-database support — SQLite для dev, PostgreSQL для prod

  • Goose миграции — версионный контроль схемы БД

  • Индексация — оптимизация запросов

Security & Validation:

  • JWT middleware — защита admin endpoints

  • Password hashing — bcrypt с configurable cost

  • Input validation — struct-based валидация через теги

  • Captcha verification — server-side проверка токенов

  • CORS policy — ограничение доступа по origin

API Documentation:

  • Swagger UI — интерактивная документация

  • Auto-generation — генерация из Go аннотаций

  • Type-safe DTOs — строгая типизация запросов/ответов

  • Try-it-out — тестирование endpoints прямо из браузера

Dependency Injection:

  • Wire паттерн — ручная инъекция зависимостей

  • Interface-based — программирование через интерфейсы

  • Контейнер — централизованная инициализация компонентов

  • Легкое тестирование — простая подмена зависимостей

DevOps

Docker:

  • Multi-stage builds — оптимизация размера образа

  • Alpine base image — минимальный production образ

  • Volume mapping — персистентность данных и медиафайлов

Docker Compose:

  • Dev profile — hot reload с Air, подключение БД

  • Preview profile — staging окружение с SQLite

  • Prod profile — production с PostgreSQL, nginx reverse proxy

  • External networks — интеграция с frontend контейнерами

Database Management:

  • Версионированные миграции — rollback поддержка

Результат

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

  • Производительность — быстрые ответы благодаря Go и эффективным запросам к БД

  • Безопасность — JWT-аутентификация, валидация, защита от спама

  • Удобство — автоматические уведомления, обработка изображений, Swagger UI

  • Масштабируемость — чистая архитектура, поддержка PostgreSQL, Docker deployment

  • Поддерживаемость — модульная структура, dependency injection, logging

Технологии

GolangEchoGormSQLiteJWTDockerSwaggerGoose