← Všechny práce
WovieŽivé demoKatalog filmů · osobní projekt

Najít film a mít seznam po ruce

Katalog filmů s žánry, hodnocením z TMDB, oblíbenými a seznamy ke zhlédnutí. Postavený tak, aby zůstal rychlý nad velkým cizím katalogem.

Osobní projekt Mykhaila Plokhina. Ve vývoji.

Next.js · TypeScript · Tailwind CSS · Prisma · TMDB API

Stránka filmu Project Hail Mary ve Wovie: plakát, název, hodnocení TMDB a žánry na pozadí záběru z filmu
Úvodní stránka Wovie: vybraný film s hodnocením, žánry a tlačítkem Pokračovat, kde jste skončili
Přehrávač traileru na stránce filmu ve Wovie
Registrace ve Wovie: avatar, uživatelské jméno, e-mail a heslo, přihlášení přes Google a Apple

Problém

Katalog filmů jsou hlavně cizí data. Práce spočívá v tom, aby zůstal rychlý a spolehlivý, i když je zdroj pomalý nebo se mění.

  • Dotaz na TMDB při každé návštěvě udělá ze špatného dne TMDB váš špatný den.
  • Když se všechno vykresluje v prohlížeči, pomalý telefon dlouho čeká na první plakát.
  • Seznamy patří jednomu člověku, takže se nedají cachovat jako katalog.

Jak je to postavené

Stránky katalogu se vykreslují na serveru a hodinu se drží v cache. Jen osobní data — oblíbené a seznamy — čtou z databáze.

cacheosobníobnovaNávštěvníkServerové vykresleníCache stránek · 1 hPrismaPostgreSQL · seznamyTMDB API

Klíčová rozhodnutí

Každé rozhodnutí a alternativa, kterou porazilo.

Držet stránky katalogu hodinu v cache

Katalog je pro všechny stejný, takže se vykreslí jednou za hodinu, ne při každé návštěvě. Když TMDB nejede, návštěvníci uvidí o něco starší data místo chyby.

Stránky filmů vykreslené na serveru

Stránky filmů, Top Rated a New Releases přijdou jako hotové HTML, takže pomalý telefon nečeká na JavaScript. Hlavní stránka katalogu se zatím vykresluje v prohlížeči — to je další na řadě.

Databáze jen pro osobní data

Oblíbené a seznamy potřebují skutečné čtení podle uživatele; všechno ostatní do databáze nechodí.

Čísla

Wovie je ve vývoji, má veřejné demo a otevřený zdrojový kód.

ÚdajCo znamená
< 90msPřechod mezi stránkamiCílová doba přechodu — zatím nezměřená.Cíl
1 hObnova kataloguStránky katalogu se vykreslí jednou a obnovují se každou hodinu.Ověřeno
Cíl
— Na co je systém navržen — ne naměřený výsledek
Ověřeno
— Ověřeno v kódu nebo na běžící verzi

Potřebujete něco podobného?

Popište zadání pár řádky. Odpoví člověk z týmu.

Probrat projekt