Игорь Белоусов
Запропонуйте Игорю роботу над вашим наступним проєктом або зареєструйте профіль фрилансера і починайте заробляти просто зараз.
Рейтинг
Навички та вміння
Програмування
-
HTML та CSS верстання
від 1000 UAH за годину
-
Javascript та Typescript
від 1000 UAH за годину
-
Веб-програмування
від 1000 UAH за годину
Послуги
-
Інтернет-магазини та електронна комерція
від 40 000 UAH за проєкт
Портфоліо
-
132 907 UAH Київський крейсерський яхт-клуб
Створення сайту під ключПлатформа управління цифровим архівом і флотом яхт-клубу
О проекті: Розробка високопродуктивної системи «Цифровий музей» для Київського міського круїзного яхт-клубу. Проект спрямований на систематизацію історичної спадщини, облік флоту та екіпажів, а також автоматизацію медіа-архіву. Основний акцент зроблено на надійність зберігання даних і швидкість роботи на мобільних пристроях.
Стек технологій:
Backend: Go (Golang) — розробка відмовостійкого API та системи обробки медіа-контенту.
… Frontend: Angular 21 (Standalone Components, Signals, новий Control Flow) — створення швидкого та чуйного інтерфейсу.
Database: PostgreSQL (використання UUID v7 для забезпечення безпеки та природного сортування даних).
Storage: S3-сумісне сховище (Cloudflare R2 в продакшені, SeaweedFS для локальної розробки).
DevOps: Автоматизований CI/CD цикл, робота з Feature-гілками, Docker.
Технічні завдання та реалізовані рішення:
Архітектура зберігання «Zero Path»:
Проблема: Залежність від локальної файлової системи та складнощі з міграцією даних.
Рішення: Повний відмову від зберігання шляхів до файлів у БД. Реалізована система, де в базі зберігаються тільки UUID та розширення, а шляхи формуються динамічно на стороні фронтенда через абстракцію S3-провайдера. Це дозволило безшовно перемикатися між локальним SeaweedFS та хмарним Cloudflare R2.
Оптимізація продуктивності мобільної версії (Performance):
Проблема: Низькі показники LCP (3.8 сек) через завантаження оригінальних зображень.
Рішення: Розроблений медіа-пайплайн на Go, який при завантаженні автоматично генерує WebP-мініатюри (thumbs). Налаштована лінива завантаження (lazy loading) та примусове відображення прев'ю за замовчуванням, що дозволило повернути показники швидкості в «зелену зону» (90+ балів Lighthouse).
Логічна ізоляція даних (Gallery Isolation):
Проблема: Складність управління тисячами медіа-файлів, що стосуються різних сутностей (яхтам, подіям, людям).
Рішення: Впроваджена структура папок на рівні S3 на основі UUID галерей. Це виключило зберігання всіх файлів в одному місці, спростило бекапування та видалення пов'язаних даних.
Стабільність макета (CLS Optimization):
Проблема: «Стрибаючий» інтерфейс при підвантаженні зображень на мобільних пристроях.
Рішення: Використання строгого Atomic Design та резервування простору під медіа-контент через aspect-ratio в Angular-компонентах.
Унікальні фішки та можливості:
Автоматизований Медія-Процесинг: Система самостійно визначає тип контенту (фото/відео), створює потрібні прев'ю та розміщує їх у відповідних директоріях S3 (originals/thumbs).
Пов'язаний історичний архів: Глибока інтеграція даних між профілем яхти та її екіпажем, що дозволяє прослідкувати історію судна через десятиліття.
Професійний Workflow: Розробка ведеться за принципом Git Flow з автоматичною доставкою коду на прод після злиття в основну гілку, що гарантує стабільність працюючого сервісу.
Результат:
Створена масштабована та незалежна від інфраструктури платформа. Завдяки переходу на S3-сумісну архітектуру та оптимізації фронтенда, проект демонструє високу швидкість відгуку та готовий до зберігання великих масивів даних без втрати продуктивності.