[{"data":1,"prerenderedAt":86},["ShallowReactive",2],{"post-pl-PL-highscore":3,"adjacent-posts-pl-PL-highscore":24,"related-posts-pl-PL-highscore":49},{"id":4,"slug":4,"publishDate":5,"updateDate":-1,"title":6,"excerpt":7,"image":8,"category":9,"tags":10,"author":-1,"draft":14,"metadata":15,"content":16,"featured":14,"lang":17,"renderedContent":18,"tocItems":19},"highscore",["Date","2023-10-27T00:00:00.000Z"],"Highscore The Game – Mój Projekt Webowej Gry do Nauki Programowania","Webowa gra, którą od lat używam do nauki i testowania różnych technologii. Krótka historia i lista implementacji.","\u002Fimages\u002Fblog\u002Fhighscore-the-game.webp","projekty",[11,12,13],"game-dev","javascript","nauka",false,{},"[Highscore: The Game](https:\u002F\u002Fpooler22.gitlab.io\u002Fhighscore-ui\u002F) to projekt, który towarzyszy mi od lat. Używam go do nauki i eksperymentów z różnymi stackami.\n\nPomysł wziął się z chęci ciągłego testowania nowych rozwiązań. Gra ewoluowała: czysty JS + HTML\u002FCSS, MVVM, Windows Universal App, build pod Androida, React, Vue 2, Vue 3 + TypeScript + Vite. W planach: Svelte, Qwik, Solid, Elixir.\n\nDla mnie Highscore jest tym, czym dla wielu jest „to do list” – jednym projektem do nauki i porównań. Nawet przy małej aplikacji można dużo wynieść; współpraca i wymiana wiedzy przy każdej iteracji są dla mnie ważne.\n\nDziękuję testerom i wszystkim, którzy dawali feedback. Wasze pomysły i wyniki na zajęciach motywowały mnie do dalszej pracy. Projekt wiele mi dał – i technologicznie, i przez współpracę oraz otwartość na pomysły innych.\n\nZapraszam do gry. Każda opinia i wynik pomagają rozwijać projekt.\n\n## Linki\n\n- [Highscore: The Game – zagraj online](https:\u002F\u002Fpooler22.gitlab.io\u002Fhighscore-ui\u002F)","pl-PL","\u003Cp class=\"text-body-1 mb-6\">\u003Ca href=\"https:\u002F\u002Fpooler22.gitlab.io\u002Fhighscore-ui\u002F\" class=\"text-primary font-weight-bold text-decoration-none\">Highscore: The Game\u003C\u002Fa> to projekt, który towarzyszy mi od lat. Używam go do nauki i eksperymentów z różnymi stackami.\u003C\u002Fp>\n\u003Cp class=\"text-body-1 mb-6\">Pomysł wziął się z chęci ciągłego testowania nowych rozwiązań. Gra ewoluowała: czysty JS + HTML\u002FCSS, MVVM, Windows Universal App, build pod Androida, React, Vue 2, Vue 3 + TypeScript + Vite. W planach: Svelte, Qwik, Solid, Elixir.\u003C\u002Fp>\n\u003Cp class=\"text-body-1 mb-6\">Dla mnie Highscore jest tym, czym dla wielu jest „to do list” – jednym projektem do nauki i porównań. Nawet przy małej aplikacji można dużo wynieść; współpraca i wymiana wiedzy przy każdej iteracji są dla mnie ważne.\u003C\u002Fp>\n\u003Cp class=\"text-body-1 mb-6\">Dziękuję testerom i wszystkim, którzy dawali feedback. Wasze pomysły i wyniki na zajęciach motywowały mnie do dalszej pracy. Projekt wiele mi dał – i technologicznie, i przez współpracę oraz otwartość na pomysły innych.\u003C\u002Fp>\n\u003Cp class=\"text-body-1 mb-6\">Zapraszam do gry. Każda opinia i wynik pomagają rozwijać projekt.\u003C\u002Fp>\n\u003Ch2 class=\"text-h4 font-weight-black  text-primary mt-16 mb-6 border-s-lg border-primary ps-4\">Linki\u003C\u002Fh2>\n\u003Cul class=\"pa-0 mb-6\">\n\u003Cli class=\"d-flex align-start mb-2\">\u003Cspan class=\"text-primary font-weight-bold me-2\">▹\u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Fpooler22.gitlab.io\u002Fhighscore-ui\u002F\" class=\"text-primary font-weight-bold text-decoration-none\">Highscore: The Game – zagraj online\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n",[20],{"id":21,"text":22,"level":23},"linki","Linki",2,{"prev":25,"next":40},{"id":26,"slug":26,"publishDate":27,"updateDate":-1,"title":28,"excerpt":29,"image":30,"category":31,"tags":32,"author":-1,"draft":14,"metadata":38,"content":39,"featured":14,"lang":17},"projekt-innowacje-2023-zimowy",["Date","2024-02-10T00:00:00.000Z"],"Projekt Innowacje 2023\u002F2024 – Zimowa edycja z Nuxt i Firebase","Zima 2023\u002F2024 – Projekt Innowacje na PŁ. Nuxt 3, Firebase, Git Flow. Studenci od podstaw Vue do pełnoprawnego meta-frameworku.","\u002Fimages\u002Fblog\u002Fpl-innowacje4.webp","edukacja",[33,34,35,36,37],"nuxt","firebase","vue","mentoring","blog",{},"W zimowym semestrze 2023\u002F2024 prowadziłem kolejną edycję Projektu Innowacje na Politechnice Łódzkiej. Tym razem stack to Nuxt 3 (meta-framework Vue), Firebase, Pinia, Vuetify, i18n i Git Flow. Obserwowanie, jak studenci przechodzą od podstaw Vue do Nuxt z file-based routingiem i auto-importami, było dla mnie cennym doświadczeniem.\n\nTechnologie: Nuxt 3 (SPA, file-based routing, auto-imports), Firebase (Auth, Firestore, Storage, hosting), Pinia, Vuetify, i18n, Git Flow.\n\nNa początku omawialiśmy różnicę między SSR a CSR. W tym projekcie Nuxt w trybie SPA – bez serwera renderującego, skupienie na interfejsie. Studenci musieli ogarnąć strukturę Nuxt: `\u002Fpages`, `\u002Fcomposables`, `\u002Fserver`. Git Flow: feature branches, release branches, hotfix branches, code review, konflikty. Współpraca przez repozytorium to w IT podstawa; obserwowanie, jak studenci rozwiązują konflikty i komunikują się, pokazało mi wartość wymiany doświadczeń.\n\nFirebase był dla wielu pierwszym „backendem jako usługą”. Pracowaliśmy nad Auth (email\u002Fhasło, Google, reset hasła, role), Firestore (kolekcje, dokumenty, real-time, Security Rules). Security Rules okazały się jednym z trudniejszych elementów – myślenie o bezpieczeństwie w sposób deklaratywny. Przejście od „własny serwer” do cloud-first było dla nich ważną zmianą perspektywy.\n\nPinia do stanu globalnego – kiedy stan globalny, kiedy lokalny. i18n: lazy loading tłumaczeń, locale routing, language switcher.\n\nProjekt finalny: rejestracja, logowanie (email + Google), reset hasła, role, pełny CRUD dla dwóch typów encji (paginacja, wyszukiwanie, real-time), panel admina, minimum dwa języki, responsywność z Vuetify.\n\nWyzwania: złożoność architektury (przejście z prostego Vue na Nuxt), asynchroniczność i synchronizacja stanu, Firebase Security Rules, Git Flow w praktyce (konflikty = komunikacja i kompromisy).\n\nDziękuję studentom za zaangażowanie i organizatorom PŁ za możliwość dzielenia się wiedzą. Nuxt i Firebase to dobre narzędzia do nauki zaawansowanych aplikacji webowych.\n\n## Linki\n\n- [Projekt Innowacje – Politechnika Łódzka](https:\u002F\u002Fwww.p.lodz.pl\u002F)\n- [Nuxt.js](https:\u002F\u002Fnuxt.com\u002F)\n- [Firebase](https:\u002F\u002Ffirebase.google.com\u002F)",{"id":41,"slug":41,"publishDate":42,"updateDate":-1,"title":43,"excerpt":44,"image":45,"category":31,"tags":46,"author":-1,"draft":14,"metadata":47,"content":48,"featured":14,"lang":17},"projekt-innowacje-2023",["Date","2023-07-15T00:00:00.000Z"],"Projekt Innowacje 2023 – Letnia podróż z Vue i Firebase","Letni semestr 2023 – Projekt Innowacje na PŁ. Jedna wspólna aplikacja, podział na zespół web, mobile i managera. Vue.js i Firebase.","\u002Fimages\u002Fblog\u002Fpl-innowacje3.webp",[35,34,36,37],{},"W letnim semestrze 2023 znów brałem udział w Projekcie Innowacje na Politechnice Łódzkiej – z szóstką studentów. Cel: od fundamentów web developmentu do wspólnego projektu na Vue.js i Firebase z jasnym podziałem ról. Chciałem, żeby ta edycja była bliżej realiów komercyjnych: uporządkowany start, iteracyjna praca, role web \u002F mobile \u002F manager.\n\nPierwsze tygodnie: wyrównanie poziomu i wspólny język. Git i GitLab (branche, merge requesty, code review, konflikty). VS Code i dev experience (Vue, TypeScript, formatowanie, linting). JavaScript i TypeScript (konstrukcje, asynchroniczność, typy). Vue.js i Firebase (pierwsze komponenty Vue 3, nawigacja, Firebase Auth i Firestore). Zależało mi, żeby studenci rozumieli, dlaczego środowisko jest skonfigurowane tak, a nie inaczej – sporo czasu na dokumentację i decyzje zamiast kopiowania tutoriali.\n\nDruga część semestru: jeden wspólny system zamiast kilku małych aplikacji. Podział ról: zespół web (frontend Vue, logika, Firebase), zespół mobile (responsywność, UX na małych ekranach), rola managera (backlog, zadania, komunikacja, sprinty). Studenci mogli spróbować różnych perspektyw; manager mierzył się z łączeniem stylów pracy w jeden plan. Tablica z zadaniami i „definition of done” uporządkowała komunikację.\n\nStack: Vue 3 z Composition API, Pinia (tam gdzie lokalny stan nie wystarczał), Firebase Auth i Firestore, Firebase Hosting i CI\u002FCD. Cel był taki: nie „nauczyć się Vue i Firebase na pamięć”, tylko zobaczyć, jak te narzędzia pomagają dowieźć produkt. Dzięki chmurze mogliśmy skupić się na funkcjonalnościach, przepływach i jakości kodu.\n\nPraca w sześcioosobowym zespole szybko pokazała typowe problemy: różne tempo nauki, dogadywanie się przy decyzjach, łączenie frontendu, mobile UX i organizacji. Stopniowo oddawałem odpowiedzialność studentom – pytania zamiast gotowych rozwiązań, dokumentacja, wzajemne tłumaczenie. Pod koniec semestru coraz częściej radzili sobie bez mojej interwencji.\n\nNa koniec mieliśmy spójną aplikację: logowanie przez Firebase, dane w Firestore, nawigacja i widoki działające na telefonach, wdrożenie na hosting. Dla studentów – pierwszy pełny cykl od commita przez code review po deploy. Dla mnie – potwierdzenie, że faza wprowadzająca plus jasne role dają dobry efekt.\n\n## Linki\n\n- [Projekt Innowacje – Politechnika Łódzka](https:\u002F\u002Fwww.p.lodz.pl\u002F)",[50,62,75],{"id":51,"slug":51,"publishDate":52,"updateDate":-1,"title":53,"excerpt":54,"image":55,"category":9,"tags":56,"author":-1,"draft":14,"metadata":60,"content":61,"featured":14,"lang":17},"kolekcjoner-chwil",["Date","2026-02-01T00:00:00.000Z"],"Kolekcjoner Chwil – pomysły na spędzanie czasu","Aplikacja z pomysłami na wyjścia i aktywności. Filtry (budżet, czas, kategoria), tryby dla siebie, pary i grupy.","\u002Fimages\u002Fprojects\u002Fkolekcjonerchwil.webp",[57,58,59],"inspiracje","aplikacja-webowa","pomysły",{},"Ile razy planowaliście weekend z przyjaciółmi i po godzinie wciąż nie było pomysłu? Albo chcieliście zaskoczyć kogoś bliskiego, ale zabrakło inspiracji? Kolekcjoner Chwil wyszedł z takich sytuacji. Chciałem narzędzie, które nie tylko podsuwa pomysły, ale zachęca do wyjścia z rutyny.\n\nBazę pomysłów zbierałem miesiącami – z rozmów, własnych wyjazdów i obserwacji. Każda propozycja ma być realna do zrobienia i warta czasu. Szybko doszedłem do wniosku, że jeden zestaw dla wszystkich nie ma sensu – stąd personalizacja. Trzy tryby: dla siebie (czas solo), dla pary, dla grupy. Filtry: budżet, lokalizacja, dostępny czas, kategorie. W kilka sekund można zawęzić do tego, co pasuje, zamiast godzin przeglądania sieci.\n\nKategorie są zróżnicowane – sport, kultura, relaks, zabawa. Starałem się zachować balans między aktywnościami wymagającymi przygotowania a tymi na spontan. Od użytkowników dostaję sygnały, że próbują czegoś nowego: warsztaty garncarskie, nocne zwiedzanie miasta, wyjazdy za miasto. To dla mnie najlepszy feedback.\n\nInterfejs oparłem na kartach – szybkie przeglądanie, zapisywanie ulubionych. Aplikacja ma działać na komórce i desktopie; pomysły często przychodzą w biegu, więc dostępność ma znaczenie.\n\nWspólne, realne doświadczenia nadal budują relacje. Kolekcjoner ma być mostkiem między „może coś zrobić” a „zróbmy to”. Zapraszam do wypróbowania – [Kolekcjoner Chwil](https:\u002F\u002Fkolekcjonerchwil.pl\u002F).\n\n## Linki\n\n- [Kolekcjoner Chwil](https:\u002F\u002Fkolekcjonerchwil.pl\u002F)",{"id":63,"slug":63,"publishDate":64,"updateDate":-1,"title":65,"excerpt":66,"image":67,"category":9,"tags":68,"author":-1,"draft":14,"metadata":72,"content":73,"featured":74,"lang":17},"freszkids-pl",["Date","2026-01-01T00:00:00.000Z"],"Freszkids.pl – zamawianie posiłków do szkół","Platforma usprawniająca zamawianie posiłków do szkół dla dzieci od firm cateringowych. Dla szkół bez własnej kuchni.","\u002Fimages\u002Fblog\u002Ffreszkids.webp",[69,70,71],"platforma","catering","szkoła",{},"Freszkids.pl to platforma, która usprawnia zamawianie posiłków do szkół dla dzieci od firm cateringowych. Działa tam, gdzie szkoły nie mają własnej kuchni i korzystają z cateringu zewnętrznego. Projekt ma dwie główne sekcje: dla rodziców i dla firm cateringowych.\n\nSekcja dla rodziców pozwala zamawiać posiłki dla dzieci w szkole. Rodzic wybiera szkołę dziecka, przegląda menu na dany dzień lub tydzień, zaznacza posiłki i składa zamówienie. Można ustawić preferencje żywieniowe, alergeny i diety specjalne. System przypomina o zamówieniach i pozwala płacić online.\n\nSekcja dla firm cateringowych umożliwia zarządzanie ofertami, menu, zamówieniami i dostawami. Firma dodaje menu na konkretne dni, ustawia ceny, określa terminy zamówień i dostaw. Widzi wszystkie zamówienia z danej szkoły, może eksportować listy do przygotowania posiłków i śledzić płatności.\n\nProces jest prosty: rodzic wybiera posiłki, płaci, firma dostarcza. Szkoła nie musi koordynować zamówień ani zbierać gotówki. Wszystko działa przez platformę. Rodzice mają kontrolę nad tym, co jedzą ich dzieci, a firmy cateringowe mają przejrzysty system zarządzania zamówieniami.\n\nStrona jest responsywna i szybka. Większość rodziców zamawia posiłki na telefonach, więc mobilna wersja była priorytetem. Ładowanie strony jest zoptymalizowane – zdjęcia są kompresowane, kod jest minifikowany.\n\nSEO jest ważne. Strony mają odpowiednie meta tagi, strukturyzowane dane, sitemap. Dzięki temu platforma pojawia się w wynikach wyszukiwania, gdy ktoś szuka cateringu do szkół czy zamawiania posiłków dla dzieci.\n\nPlanujemy rozszerzyć funkcjonalności: powiadomienia SMS, integrację z systemami szkolnymi, raporty żywieniowe dla rodziców, możliwość oceniania posiłków. Na razie skupiamy się na tym, żeby podstawowy proces zamawiania i dostarczania posiłków działał bez problemów.\n\n## Linki\n\n- [Freszkids.pl](https:\u002F\u002Fwww.freszkids.pl\u002F)",true,{"id":76,"slug":76,"publishDate":77,"updateDate":-1,"title":78,"excerpt":79,"image":80,"category":9,"tags":81,"author":-1,"draft":14,"metadata":84,"content":85,"featured":74,"lang":17},"my-gym-track",["Date","2025-09-15T00:00:00.000Z"],"Rejestr Formy – śledzenie treningów siłowych","Aplikacja do zapisywania treningów i analizy postępów. Baza ćwiczeń, gotowe plany, wykresy. Powstała, bo żadna z dostępnych nie dawała mi pełnej kontroli nad danymi.","\u002Fimages\u002Fprojects\u002Fmy-gym-track.webp",[82,58,83],"fitness","tracking",{},"Przez lata treningów testowałem różne sposoby zapisywania postępów: zeszyt, arkusze, aplikacje. Żadne nie dawało mi poczucia pełnej kontroli – albo za mało analizy, albo reklamy, albo drogie subskrypcje. Postanowiłem zrobić narzędzie pod siebie i innych, którzy chcą świadomie śledzić rozwój. Tak powstał Rejestr Formy (My Gym Track).\n\nZasada: użytkownik ma spędzać czas na treningu, nie na klikaniu. Interfejs ma być szybki – kilka ruchów, wpisanie ciężaru i powtórzeń, koniec. Aplikacja sama zapisuje czas, liczy objętość treningu i wykrywa rekordy osobiste. Powiadomienie „pobiłeś PR” daje konkretną motywację.\n\nBaza to ponad 1600 ćwiczeń z opisem techniki i zaangażowanych mięśni. Plus ponad 600 gotowych planów pod różne cele (masa, redukcja, siła, wytrzymałość). Wiem z własnego doświadczenia, jak przytłaczające może być układanie planu od zera; gotowe plany pozwalają zacząć od razu.\n\nWykresy dla każdego ćwiczenia pokazują progres w czasie – nie tylko maksima, ale trendy i plateau. Badania, które przeglądałem przy projekcie, pokazują, że zapisywanie treningów poprawia regularność: użytkownicy aplikacji realizują ok. 81% zaplanowanych treningów vs 52% bez takiego wsparcia; w jednym z badań średni wzrost w przysiadzie +19 kg, w wyciskaniu +8 kg po 10 tygodniach. Systematyczność i dane działają.\n\nPriorytetem była kontrola użytkownika nad danymi. Rejestr Formy nie wyświetla reklam i nie sprzedaje danych. Treningi należą do Ciebie. To ogranicza model biznesowy, ale dla mnie ważniejsze jest to, że narzędzie realnie pomaga. Wiadomości od użytkowników o pierwszych 100 kg w przysiadzie czy o tym, że w końcu trenują regularnie, są dla mnie najlepszym feedbackiem.\n\nPlanuję dalszy rozwój: zaawansowana analiza, dzielenie się treningami z trenerem lub partnerem, ewentualnie integracje z wearables. Chcę zachować prostotę i kontrolę użytkownika nad danymi. Zapraszam do wypróbowania – [Rejestr Formy](https:\u002F\u002Fmy-gym-track.web.app\u002F).\n\n## Linki\n\n- [Rejestr Formy](https:\u002F\u002Fmy-gym-track.web.app\u002F)",1790687720790]