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

Полнофункциональный REST API для управления контентом и взаимодействия с клиентами барбершопа. Проект включает публичные endpoints для фронтенда и защищенную административную панель с JWT-аутентификацией.
Технологический стек
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 — валидация капчи
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 шаблоны для уведомлений
Множественные получатели — рассылка на несколько адресов
Асинхронная отправка — неблокирующая обработка
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 — программирование через интерфейсы
Контейнер — централизованная инициализация компонентов
Легкое тестирование — простая подмена зависимостей
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