Prosty Pomysł, Który Przerodził Się w Kompleksowy Projekt
To, co zaczęło się jako osobiste wyzwanie do przetestowania moich umiejętności w integracji API, szybko przekształciło się w pełnoprawną platformę anime. Moim celem było wykorzystanie API Jikan – szeroko stosowanego, darmowego API dostarczającego dane o anime. Pomimo obszernego zbioru danych, API to stanowiło duże wyzwanie ze względu na ścisłe limity zapytań – zaledwie 60 żądań na minutę. Pokonanie tych ograniczeń stało się pierwszym istotnym kamieniem milowym w moim projekcie, torując drogę do szerszej ścieżki rozwoju.
Pokonywanie Ograniczeń API
Początkowe etapy rozwoju skupiły się na radzeniu sobie z ograniczeniami API. Ze względu na limity żądań musiałem zapewnić, że moja platforma efektywnie pobiera i przechowuje dane anime bez powodowania problemów z wydajnością. Wdrożyłem kilka technik optymalizacyjnych, w tym:
- Łączenie Żądań: Grupowanie wielu zapytań w jedno wywołanie API w celu minimalizacji obciążenia.
- Mechanizmy Cache’owania: Przechowywanie często wykorzystywanych danych w pamięci lokalnej, aby zredukować zbędne zapytania do API oraz buforowanie na serwerze dla kluczowych komponentów.
- Ograniczanie i Debouncing: Zarządzanie czasem zapytań w celu uniknięcia przekroczenia limitów API.
- Stronicowanie: Dzielenie dużych zbiorów danych na mniejsze fragmenty, aby usprawnić proces pobierania informacji.
- Intersection Observer: Wysyłanie żądań do API tylko wtedy, gdy komponenty wchodzą w widok użytkownika, co zmniejszyło liczbę zbędnych zapytań i poprawiło czas początkowego ładowania.
Platforma musiała być jednocześnie szybka i wolna – szybka dla użytkownika końcowego, ale celowo spowolniona w backendzie, aby uniknąć przekroczenia limitów API. To równoważenie było kluczowe dla optymalizacji wydajności i wymagało precyzyjnego dostrajania.
Dodatkowo, stworzyłem bazę danych PostgreSQL przy użyciu Supabase do lokalnego przechowywania kluczowych metadanych. Dzięki temu możliwe było błyskawiczne pobieranie danych bez konieczności wielokrotnego odpytywania API. Dzięki tym optymalizacjom przekształciłem ograniczenia API w okazję do poprawy wydajności i skalowalności backendu.
Eksploracja Danych API: Pokonywanie Rozbieżności Schematów
Jednym z nieoczekiwanych wyzwań było eksplorowanie i integrowanie danych z API. Różne punkty końcowe API Jikan miały odmienne schematy danych – niektóre brakowały kluczowych pól, inne dostarczały sprzeczne informacje. Ponieważ chciałem połączyć dane z wielu endpointów w jeden zunifikowany wynik, musiałem znaleźć sposób na standaryzację struktury danych.
Te rozbieżności szczególnie utrudniały stosowanie mechanizmów filtrowania i sortowania. Filtry musiały uwzględniać brakujące pola, zachowując jednocześnie spójność wyświetlanych wyników. Rozwiązanie tego problemu wymagało intensywnych testów, mapowania wartości domyślnych oraz stworzenia logiki obsługi warunkowej, aby zapewnić płynność integracji. Ten proces znacząco wzmocnił moje umiejętności pracy z niejednolitymi źródłami danych zewnętrznych.

Rozszerzanie Funkcjonalności: Poza Integrację API
Po ukończeniu kluczowych prac nad API skupiłem się na dodaniu funkcji skoncentrowanych na użytkownikach. Chciałem stworzyć bardziej angażujące doświadczenie niż tylko wyświetlanie danych o anime. Kluczowe dodatki obejmowały:
- Spersonalizowane Oceny i Listy Oglądania: Użytkownicy mogą oceniać i śledzić swoje ulubione anime, co wymagało solidnej struktury bazy danych.
- Zaawansowane Systemy Filtrowania: Dynamiczne filtry na podstawie gatunku, roku wydania, popularności i preferencji użytkownika.
- Obsługę Wielu Języków: Integracja Google Translate umożliwiła użytkownikom z różnych środowisk językowych łatwy dostęp do treści.
Jednym z najciekawszych wyzwań była implementacja Google OAuth. Na początku zauważyłem, że spersonalizowane nazwy użytkowników były nadpisywane przez metadane Google podczas odświeżania sesji. Aby to naprawić, utworzyłem osobną kolumnę w bazie danych przechowującą nazwy nadane przez użytkowników, pobieraną po uwierzytelnieniu. To proste, ale skuteczne rozwiązanie zapewniło użytkownikom pełną kontrolę nad wybranymi nazwami wyświetlanymi.
Projektowanie Cyberpunkowej Estetyki
Ponieważ kultura anime i cyberpunk często się przenikają, chciałem, aby design platformy odzwierciedlał futurystyczną estetykę neonowego Tokio. Aby to osiągnąć, zastosowałem:
- Neonową Typografię: Niestandardowe efekty CSS naśladujące podświetlenie neonowe, nadając tekstowi cyberpunkowy klimat.
- Ciemny Interfejs z Jaskrawymi Akcentami: Elegancki, ciemny interfejs przeplatany neonowymi odcieniami niebieskiego, fioletowego i różowego, co zwiększa atrakcyjność wizualną.
- Płynne Animacje: Subtelne efekty hover, przejścia i dynamiczne elementy UI, sprawiające, że interakcje są płynne i nowoczesne.
Ten wybór estetyczny nie tylko poprawił wrażenia użytkowników, ale także wzmocnił immersyjne odczucie platformy, idealnie współgrając z jej anime-tematem.

Eksploracja Integracji Treści Wideo: Dylemat Techniczny i Etyczny
Zachęcony sukcesem platformy, zacząłem badać możliwość integracji streamingu odcinków anime. Początkowo analizowałem legalne API zapewniające dostęp do streamingu, jednak okazały się one albo ograniczone pod względem zawartości, albo ukryte za paywallem. W ramach alternatywy zaimplementowałem backendowy silnik agregujący treści z wielu portali anime, skutecznie pobierając pełne bazy danych odcinków.
Jednak pomimo sukcesu technicznego, kluczową kwestią stały się rozważania prawne i etyczne. Agregowanie treści z zewnętrznych źródeł często wchodzi w szarą strefę prawa autorskiego. Po dokładnym rozważeniu podjąłem decyzję o niepublikowaniu funkcjonalności scrapingu treści. Ta decyzja podkreśliła moje zaangażowanie w równoważenie zdolności technicznych z odpowiedzialnością etyczną.
Wnioski i Refleksje
Ten projekt był czymś więcej niż tylko wyzwaniem technicznym – był doświadczeniem edukacyjnym, które pokazało moje zdolności do:
- Kreatywnego i efektywnego rozwiązywania skomplikowanych problemów technicznych.
- Optymalizacji interakcji API poprzez zaawansowane techniki zarządzania danymi.
- Projektowania angażującej i przyjaznej użytkownikowi platformy, kładąc nacisk zarówno na funkcjonalność, jak i estetykę.
- Podejmowania przemyślanych decyzji technicznych, uwzględniających zarówno wykonalność, jak i aspekty etyczne.
- Dostosowywania i rozszerzania zakresu na podstawie potrzeb i opinii użytkowników.
Dzięki metodycznemu rozwiązywaniu problemów, przemyślanemu designowi i silnemu skupieniu na doświadczeniu użytkownika, stworzyłem platformę, która jest nie tylko solidna technicznie, ale także angażująca i atrakcyjna wizualnie.
Linki do strony oraz kodu źródłowego znajdziecie w linku poniżej:





