Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
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.
Szczegóły pracy
Budżet 11 150 PLN
Dodana 12 kwietnia
61 wyświetleń
Freelancer
Igor Belousov
Ukraina Kijów
Brak opinii

Częściowo zajęty Częściowo zajęty
W serwisie 11 lat