Igor Belousov
Zaproponuj Igor pracę nad swoim kolejnym zleceniem.
8 dni 7 godzin temu
wiek 42 lata
w Serwisie 11 lat
Ranking
Umiejętności i kwalifikacje
Programowanie
-
Javascript & Typescript
od 82 PLN za godzinę
-
Programowanie stron internetowych
od 82 PLN za godzinę
-
Układ HTML i CSS
od 82 PLN za godzinę
Usługi
-
Sklepy internetowe i e-commerce
od 3278 PLN za projekt
Portfolio
-
10 904 PLN Kijowski klub jachtowy
Kompleksowe prace nad stroną internetowąPlatforma zarządzania cyfrowym archiwum i flotą jachtów klubu
O projekcie: Opracowanie wysokowydajnego systemu „Cyfrowe muzeum” dla Kijowskiego Miejskiego Klubu Jachtowego. Projekt ma na celu systematyzację dziedzictwa historycznego, ewidencję floty i załóg, a także automatyzację archiwum mediów. Główny nacisk położono na niezawodność przechowywania danych i szybkość działania na urządzeniach mobilnych.
Stos technologii:
Backend: Go (Golang) — opracowanie odpornego na awarie API i systemu przetwarzania treści multimedialnych.
… Frontend: Angular 21 (Standalone Components, Signals, nowy Control Flow) — tworzenie szybkiego i responsywnego interfejsu.
Baza danych: PostgreSQL (użycie UUID v7 dla zapewnienia bezpieczeństwa i naturalnego sortowania danych).
Przechowywanie: Zgodne z S3 magazyn (Cloudflare R2 w produkcji, SeaweedFS do lokalnego rozwoju).
DevOps: Zautomatyzowany cykl CI/CD, praca z gałęziami Feature, Docker.
Zadania techniczne i zrealizowane rozwiązania:
Architektura przechowywania „Zero Path”:
Problem: Zależność od lokalnego systemu plików i trudności z migracją danych.
Rozwiązanie: Całkowita rezygnacja z przechowywania ścieżek do plików w bazie danych. Wdrożono system, w którym w bazie przechowywane są tylko UUID i rozszerzenia, a ścieżki są generowane dynamicznie po stronie frontendu przez abstrakcję dostawcy S3. Umożliwiło to bezproblemowe przełączanie się między lokalnym SeaweedFS a chmurowym Cloudflare R2.
Optymalizacja wydajności wersji mobilnej (Wydajność):
Problem: Niskie wskaźniki LCP (3,8 sek) z powodu ładowania oryginalnych obrazów.
Rozwiązanie: Opracowano pipeline mediów w Go, który podczas ładowania automatycznie generuje miniatury WebP (thumbs). Skonfigurowano leniwe ładowanie (lazy loading) i wymuszone wyświetlanie podglądów domyślnie, co pozwoliło przywrócić wskaźniki prędkości do „zielonej strefy” (90+ punktów Lighthouse).
Logiczna izolacja danych (Izolacja Galerii):
Problem: Trudności w zarządzaniu tysiącami plików multimedialnych związanych z różnymi bytami (jachtami, wydarzeniami, ludźmi).
Rozwiązanie: Wdrożono strukturę folderów na poziomie S3 na podstawie UUID galerii. Wyeliminowało to przechowywanie wszystkich plików w jednym miejscu, uprościło tworzenie kopii zapasowych i usuwanie powiązanych danych.
Stabilność układu (Optymalizacja CLS):
Problem: „Skaczący” interfejs podczas ładowania obrazów na urządzeniach mobilnych.
Rozwiązanie: Wykorzystanie ścisłego Atomic Design i rezerwacja przestrzeni pod treści multimedialne przez aspect-ratio w komponentach Angular.
Unikalne cechy i możliwości:
Zautomatyzowane przetwarzanie mediów: System samodzielnie określa typ treści (zdjęcie/wideo), tworzy potrzebne miniatury i umieszcza je w odpowiednich katalogach S3 (oryginały/thumbs).
Powiązane archiwum historyczne: Głęboka integracja danych między profilem jachtu a jego załogą, umożliwiająca śledzenie historii statku przez dziesięciolecia.
Profesjonalny Workflow: Opracowanie prowadzone jest zgodnie z zasadą Git Flow z automatycznym dostarczaniem kodu na produkcję po scaleniu do głównej gałęzi, co gwarantuje stabilność działającej usługi.
Wynik:
Stworzona została skalowalna i niezależna od infrastruktury platforma. Dzięki przejściu na architekturę zgodną z S3 i optymalizacji frontendu, projekt wykazuje wysoką szybkość reakcji i jest gotowy do przechowywania dużych zbiorów danych bez utraty wydajności.