Об этом проекте

Wavelen — это лёгкое самостоятельно размещаемое веб-приложение, предназначенное для сохранения и организации личных цветовых палитр. Оно позволяет пользователям вести приватные списки шестнадцатеричных цветовых кодов, организованные в настраиваемые коллекции. Приложение предоставляет как встроенный веб-интерфейс пользователя, так и полноценный RESTful API для программного взаимодействия. Ключевые возможности: - **Управление личными цветами**: пользователи могут регистрироваться, входить в систему и управлять собственными коллекциями цветов. Каждая учётная запись начинается с коллекции «Main» по умолчанию, но пользователи могут создавать дополнительные именованные коллекции. - **Цветовые гармонии**: публичный API предоставляет конечные точки для расчёта цветовых гармоний, таких как комплементарные цвета, триады и градиенты (ramps), для любого заданного hex-кода. - **Доступ к публичным данным**: хотя коллекции конкретных пользователей являются приватными, система предоставляет публичную ленту всех цветов с возможностью сортировки по hex-значению. - **Технологический стек**: построено на Go (целевая версия Go 1.27), PostgreSQL и pgx v5. Поддерживает локальную разработку через Docker Compose и включает интеграционные тесты с использованием testcontainers. - **API и аутентификация**: безопасный доступ к приватным ресурсам требует bearer-токена, получаемого при входе в систему. Публичные конечные точки, такие как информация о версии и общий список цветов, не требуют аутентификации. Проект структурирован так, чтобы его можно было легко развернуть локально или через Docker, а конфигурация управляется через переменные окружения. Он включает логирование с корреляционными идентификаторами для трассировки запросов и следует стандартным практикам CI/CD для версионирования и тестирования.