W dzisiejszym artykule przedstawiam swoje autorskie podejście do śledzenia rozwoju. Jest nią minimalistyczna funkcjonalność, którą dodałem do swojej prywatnej strony. Można w niej tworzyć dziedziny, w których chcemy śledzić aktywności (zbierane doświadczenie). Aplikacja jest stworzona w formacie Progressive Web App, dzięki czemu można z niej wygodnie korzystać na komórce.
Skąd w ogóle pomysł?
Zgodnie z moimi wynikami Galupa mam talent Learner, upraszczając — lubię się uczyć i sprawia mi to przyjemność (o ile nie jestem do tego zmuszony i realnie mnie to interesuje).
Brakowało mi jednak systemu, który:
- byłby zarówno motywacją do systematycznej nauki,
- nakierowałby mnie na pilnowanie tematów, które chce rozwijać,
- pozwalałby mi to śledzić.
Warto zaznaczyć, że w jest już wiele takich aplikacji, które w mniejszym lub większym stopniu spełniają te oczekiwania. Jeżeli więc odczuwacie podobną potrzebę nie musicie jak ja robić swojej aplikacji, ale po prostu skorzystajcie z już dostępnych. Ogólnie polecam https://loophabits.org/, przez długi czas spełniała wszystkie moje potrzeby.
No ale wracając, mam ambitny pomysł stworzenia wysoce spersonalizowanego portalu do samorozwoju (stąd nazwa DevMe). Co więcej, brakowało mi wygodnego sposobu eksportu i prezentacji danych na desktopie. Nie zostało mi nic innego (oprócz sprawdzenia pewnie z 2-3 apek i skorzystaniu z nich po prostu) jak zrobienie swojej własnej wersji!
Proces kodowania
Jak przystało na czasy vibe coding wsparłem się moim ostatnio ulubionym zestawem Visual Studio Code + RooCode + Z.AI.
Aktualizacja readme.md + budowa kontekstu.
Jako że główny projekt, czyli DevMe (prywatna platforma do wspierania rozwoju) był od dłuższego czasu przeze mnie nieaktualizowany i brakowało w nim poprawnego pliku README, zacząłem od lakonicznego promptu do zbudowania kontekstu i aktualizacji pliku README
Przeanalizuj projekt i zaktualizuj plik readme.me
Przygotowanie planu
Następnie przełączyłem się na tryb Architect i rozpocząłem projektowanie planu wdrożenia nowej funkcjonalności
Chciałbym dodać nowa funkcjonalność dla zalogowanych użytkowników.
Funkcjonalność polegałaby na możliwości liczenia doświadczenia w wybranych czynnościach.
Użytkownik musi mieć możliwość dodawania, edytowania i opcje soft delete dla wybranych dziedzin, które chciałby śledzić. Np.
- programowanie,
- zdrowie,
- język angielski.
Zakładam, że w tym celu trzeba by stworzyć tabele z dziedzinami. Każda dziedzina miałaby relacje do swojego autora.
Użytkownicy powinni widzieć tylko i wyłącznie swoje dziedziny.
Po dodaniu już dziedzin, użytkownik powinien mieć dostęp do listy tych dziedzin w formie przycisków. Każde przyciśnięcie przycisku, dodawałoby nowy wpis do tabeli, powiązany do odpowiedniego rekordu z dziedzin dodanych przez użytkownika.
Na razie interesuje mnie taka minimalistyczna funkcjonalność. Docelowo będę chciał wdrożyć jeszcze opcje wykresów i podsumowań dla częstotliwości i ilości, ale to nie jest zadanie na teraz, choć możesz to uwzględnić podczas planowania, tak by w przyszłości wdrożenie tych funkcjonalności było wygodne.
Jeżeli masz dodatkowe pytania lub wątpliwości, to zadaj je przed przygotowaniem planu wdrożenia.
Po takim prompcie dostałem kilka dodatkowych pytań np. o to co chce przechowywać w jakim modelu.
Finalnie dostałem od architekta rozbudowany plan wdrożenia:
Wdrożenie planu
Wystarczyło przełączyć się na tryb Code i wtyczka zaczęła wdrażać zmiany.
Tutaj polecam skorzystać z mojego artykułu Ai w pracy programisty, by nie wpaść w niektóre problemy jak np. ślepą akceptację zmian.
Proces chwilę trwał, agent rozpoczął pracę od utworzenia migracji, następnie modeli, widoków, fabryk testowych danych, napisania i przeprowadzenia testów po aktualizację pliku README.
Cały proces był przeze mnie nadzorowany, aby upewnić się, że nie popełnia jakichś głupot.
W planie zabrakło seedera, więc poza powyższym planem dodałem prompta o dodaniu seedera. Niestety prompt był zbyt lakoniczny i musiałem wdrożyć jeszcze kilka poprawek by generował dla każdego użytkownika kilka domen do rozwoju.
Problemy z importami i templatkami VUE
Napotkałem dodatkowe problemy z brakującymi importami axios w niektórych templatkach (od razu widoczne w sekcji PROBLEMS w VS Code), które ręcznie poprawiłem.
Innym problemem były braki definicji typów zmiennej używanej w stronach. Tutaj skorzystałem z opcji automatycznego rozwiązania problemu przez RooCode:
- ppm na widocznym problemie w PROBLEMS
- opcja
Fix with RooCode
Progressive Web App
Jednym z moich założeń początkowych było, że takie śledzenie musi być łatwo dostępne - czyli daje możliwość szybkiego klikania w telefonie.
Po szybkiej analizie doszedłem do wniosku, że najlepiej i najszybciej zrealizuje ten cel poprzez skorzystanie z mechanizmu Progressive Web App. W skrócie korzystam z wbudowanych w przeglądarki Android’owe mechanizmów, które pozwalają przekształcić stronę w aplikacje.
Dzięki temu wystarczyło zadbać o wersje Mobile Friendly i temat apki mobilnej został załatwiony.
Wynik końcowy
Jak z tego korzystać?
Przyjąłem sobie pewne założenia, aby wyciągnąć maksimum z tak prostego podejścia:
- narzędzie ma zapewniać motywację i śledzenie ogólnej aktywności, a nie szczegółowo określać moje umiejętności,
- maksymalnie 7 dziedzin życia, nie rozdrabniam się na szczegóły w tych dziedzinach,
- każda aktywność, nieważne czy długa, czy krótka, skomplikowana czy nie, sprawia, że podbijam licznik
Co za tym idzie, jak wykonam jakąś czynność, na której śledzeniu mi zależy odblokowuje komórkę, otwieram apkę (o ile już nie jest otwarta) i po prostu klikam na dziedzinę, by podnieść w niej doświadczenie.
Podsumowanie
Planuje zaktualizować ten post jeszcze po jakimś czasie korzystania z tego rozwiązania, więc możliwe, że finalne podsumowanie się zmieni.
Całość od pomysłu do wdrożenia zajęła mi 2-3 godziny. Nie jest to może super czas jak na prostą funkcjonalność z tak dużymi ograniczeniami, ale ponownie turbo tani setup pozwolił mi poprawić odrobinę jakość swojego życia i praktycznie bez większego wysiłku czy nakładu czasowego stworzyłem użyteczne narzędzie.
Na chwilę obecną uważam, że jest to idealne rozwiązanie na moje potrzeby i nie mogę się doczekać aż zacznę z niego korzystać na co dzień i już mam w głowie pomysły jak je rozbudować!





