Powrót do strony głównej

Wajb kodowanie MVP: kinowy Tinder na Node.js i AI

Inżynier QA z pomocą AI zbudował MVP KiSwipe — serwis do wspólnego wyboru filmów poprzez swajpy trailerów. Stack: Node.js, czysty JS, TMDB. Modułowa architektura i lekcje wajb kodowania dla szybkiego prototypu.

QA stworzył kinowy TikTok z matchami: wajb kodowanie w praktyce
Advertisement 728x90

Wajbkode w akcji: MVP kina-Tinder od QA-ingeniera w Node.js i TMDB

Inżynier testów ręcznych w weekendy stworzył aplikację webową KiSwipe — usługę do wspólnego wyboru filmów według zasady Tinder z pionową listą trilerów. Budżet zerowy, minimalny stos technologiczny: Node.js, Express, czysty JS oraz Swiper.js. Sztuczna inteligencja (Gemini 3.1 Pro) generowała kod na podstawie szczegółowych promptów, a autor kontrolował architekturę i rozkład zadań.

Produkt rozwiązuje problem nudnych opisów filmów: automatyczna lista HD-trailerów, swajpy w górę/dół, polubienie do ulubionych i synchronizacja sesji dla wspólnego oglądania. Serwer wykrywa trafienia polubień i pokazuje matcha z animacją.

Mechanika KiSwipe: od listy do matcha

Użytkownik wchodzi do pełnoekranowej listy trailerów z API TMDB. Logika działania:

Google AdInline article slot
  • Automatyczne odtwarzanie wideo w pionowej liście opartej na Swiper.js.
  • Polubienie trilera zapisuje je do ulubionych (localStorage + puli serwerowe).
  • Tworzenie 'Connection' generuje unikalną salę (/room=ID).
  • Partner dołącza poprzez link, wpisuje imię.
  • Synchronizacja polubień co 2 sekundy przez metodę polling podobną do WebSocket.
  • Przy trafieniu ID filmu — blokada listy i powiadomienie 'TO JEST MATCH!' z plakatem.

Filtrowanie po gatunkach w lewym pasku bocznym, paginacja trailerów do nieskończonego przewijania. Interfejs jest responsywny: działa zarówno na mobilnych, jak i desktopowych urządzeniach.

Stos technologiczny i rozwiązania architektoniczne

AI zaproponował optymalny stos do szybkiego wdrożenia na VPS:

  • Backend: Node.js + Express do obsługi endpointów API i statycznych plików.
  • Dane: API TMDB do metadanych filmów (bez lokalnej bazy danych), pokoje i polubienia w pulach RAM serwera oraz localStorage klienta.
  • Frontend: Vanilla HTML/CSS/JS, Swiper.js do listy, YouTube Iframe API do odtwarzacza.

Pierwsza iteracja – monolityczny index.js o długości 1000 linii. Doświadczenie QA podpowiedziało: rozbić na moduły, aby izolować błędy.

Google AdInline article slot
// _ui.js — tylko manipulacje DOM
class UIManager {
  showModal(type, data) { /* modalne, toasty */ }
  updateLikeButton(filmId, liked) { /* przyciski */ }
}

// player.js — YouTube Iframe API
class VideoPlayer {
  init() { /* onYouTubeIframeAPIReady */ }
  loadTrailer(videoId) { /* cueVideoById */ }
}

// _swiper.js — paginacja i swajpy
class SwiperManager {
  fetchNextPage(page) { /* wywołanie API TMDB */ }
  handleSwipe(direction) { /* timing, preload */ }
}

// storage.js — wrapper localStorage
class Storage {
  saveLikes(likes) { localStorage.setItem('likes', JSON.stringify(likes)); }
}

Modułowość pozwoliła edytować pojedyncze pliki: zmiana mechaniki swajpów nie psuła odtwarzacza. AI generowało kod modułowo pod surowym kontrolą promptów.

Problemy wajbkodowania i ich rozwiązania

Wajbkodowanie to generowanie kodu przez AI na podstawie opisu bez głębokiego programowania. Zalety: szybkość MVP. Wady: słaba architektura bez kontroli.

Kluczowe lekcje:

Google AdInline article slot
  • Monolit → moduły: Izolacja logiki (UI, player, swiper, storage) uprościła debugowanie.
  • Przechowywanie danych: RAM + localStorage zamiast bazy danych — idealne dla MVP bez trwałej persistencji.
  • Synchronizacja: Polling co 2 sekundy zamiast WebSocket — minimalny narzut.

Testowanie: ręczne QA objęło podstawowe scenariusze (swajpy, matchy, pokoje). Otwarte do testów crashowych społeczności.

Adaptacja do globalnego rynku

YouTube Iframe API w Rosji blokował ładowanie — zawieszenia w loaderze. Rozwiązanie: przejście interfejsu na angielski, region TMDB US (Netflix, Hulu, Amazon Prime). Trailery ładują się stabilnie, konwersja nie cierpi z powodu ograniczeń sieciowych.

Wdrożenie na VPS: działa w przeglądarkach desktopowych i mobilnych. Dalej — ruch (generacja Shorts przez AI przy użyciu FFmpeg + OpenAI).

Co najważniejsze

  • Architektura modułowa uratowała wajbkodowanie przed spaghetti-kodem: modyfikacja jednego pliku nie psuje reszty.
  • Stos Node.js + Vanilla JS + TMDB minimalizuje zależności dla szybkiego MVP.
  • Synchronizacja polubień przez RAM/localStorage pasuje do prototypu o niskim obciążeniu.
  • Przejście na region US rozwiązało blokadę YouTube bez proxy.
  • Podejście QA do promptów AI: dekompozycja zadań przyspiesza iteracje.

— Editorial Team

Advertisement 728x90

Czytaj dalej