Ten projekt zaczął się tak, jak zaczyna się wiele naprawdę użytecznych narzędzi: od drobnego, ale regularnie wracającego problemu w domu. Szukałem lepszego sposobu zarządzania dostępem dzieci do internetu, bez ciągłego ręcznego włączania i wyłączania połączenia. Zależało mi też na tym, żeby obowiązujące zasady były jasne i przewidywalne, tak aby dostęp do sieci nie zależał od tego, czy akurat jestem obok routera albo mam chwilę, by zgodzić się na „jeszcze 10 minut”.
System, który ostatecznie zbudowałem, opiera się na krótkich voucherach dostępu powiązanych z routerem MikroTik. Rodzic może wystawić kod na określoną liczbę minut, a dziecko aktywuje go w prostym panelu, ale tylko w dozwolonych godzinach. Aplikacja sprawdza harmonogram, uwzględnia dzienne limity i automatycznie aktualizuje dostęp przez MikroTika. Jeśli część przyznanego czasu nie może zostać wykorzystana, bo kończy się właśnie dozwolone okno, niewykorzystane minuty wracają w postaci tokena kompensacyjnego.
Od początku chciałem, by było to rozwiązanie możliwie proste, praktyczne i skrojone pod konkretną potrzebę. Nie interesowało mnie budowanie rozbudowanej platformy kontroli rodzicielskiej. Zależało mi raczej na niewielkim systemie dopasowanym do jednego, realnego środowiska: mojej domowej sieci, mojego routera i tego, jak moja rodzina faktycznie korzysta z internetu. Dlatego architektura pozostała celowo oszczędna: Python i Flask po stronie backendu, SQLite jako magazyn danych, Vue na froncie, a MikroTik Kid Control jako warstwa wykonawcza.

AI okazało się w tym projekcie szczególnie cenne jako partner w kolejnych iteracjach. Pomagało mi porządkować przypadki brzegowe, dopracowywać logikę domenową, upraszczać fragmenty interfejsu i szybciej przechodzić przez decyzje projektowe, które normalnie zabrałyby znacznie więcej czasu. Nie chodziło o to, że wykonało pracę za mnie. Jego największą wartością było raczej to, że zmniejszało tarcie w procesie zamieniania pomysłu w działające oprogramowanie.
Co ciekawe, najtrudniejsza wcale nie była sama integracja z routerem. Znacznie większym wyzwaniem okazało się takie zaprojektowanie zachowania systemu, by w codziennym użyciu był on odbierany jako uczciwy, spójny i zrozumiały. Co powinno się stać, jeśli kod zostanie aktywowany tuż przed końcem dozwolonego okna? Jak potraktować niewykorzystany czas? W jaki sposób wydłużać już aktywną sesję? To właśnie takie szczegóły mają największe znaczenie, bo narzędzie tego typu ma sens tylko wtedy, gdy porządkuje sytuację, zamiast dokładać nowego chaosu.
Z czasem projekt rozrósł się do czegoś znacznie bardziej dopracowanego niż początkowy prototyp. Dziś obejmuje osobny panel rodzica i osobny panel dziecka, harmonogramy, limity dzienne, zarządzanie tokenami, obsługę kompensacji, przypisywanie urządzeń oraz lepszą diagnostykę synchronizacji z MikroTikiem. Każdy kolejny element pojawiał się jednak nie po to, by sztucznie zwiększać liczbę funkcji, lecz dlatego, że wynikał z praktycznego użycia i realnie poprawiał wygodę korzystania z całości.
W takich projektach najbardziej cenię nie techniczną złożoność, lecz dobre dopasowanie do rzeczywistej potrzeby. AI bardzo pomogło mi zbudować narzędzie wokół konkretnego, powracającego problemu, zamiast kończyć na prowizorycznym obejściu. W moim przypadku efektem jest system, który wprowadza bardziej przejrzyste zasady i ogranicza ilość ręcznej obsługi związanej z domowym dostępem do internetu.

Jeśli okaże się, że podobne rozwiązanie budzi zainteresowanie także poza moim własnym domem, chętnie rozwinę je dalej w kierunku produktu komercyjnego. Na dziś to przede wszystkim praktyczne, wewnętrzne narzędzie stworzone z myślą o konkretnej potrzebie. Jednocześnie widzę w nim potencjał na bardziej dopracowaną wersję, która mogłaby okazać się przydatna również dla innych rodzin korzystających z domowych sieci opartych na MikroTiku.
Najnowsze komentarze