Monly.pl – zarządzanie budżetem domowym – jak napisać aplikację od zera?

Post navigation

Kodowanie, Pomysły

Monly.pl – zarządzanie budżetem domowym – jak napisać aplikację od zera?

Od jakiegoś czasu opowiadam o swojej aplikacji, którą piszę po godzinach. Pora aby ujrzała światło dzienne i abyście mogli wypowiedzieć się na jej temat.

Aplikacja służy do zarządzania swoim budżetem domowym. Krótko i na temat. Tak na prawdę nic więcej nie musiał bym pisać, bo w tym zdaniu zawiera się wszystko. Jednak przedstawię kilka aspektów i bajerów, które spodobają się każdemu kto planuje swoje wydatki lub przymierza się do tego. Na początek opowiem o tym jak ja zarządzam swoim budżetem domowym, a raczej jak zacząłem oszczędzać pieniądze.

Dochód i wydatek

Od jakiegoś czasu (ok. roku, może dłużej) prowadzę skrupulatnie swój budżet domowy. Wcześniej miałem tak, że z końcem miesiąca nie wiedziałem na co wydałem całą moją wypłatę. Często brakowało do końca miesiąca, a nie zarabiałem jakoś mało. Dobrze wiedziałem, że przepuszczam pieniądze na byle co i kasa mi ucieka. Jednak nie byłem świadomy tego, że wcale nie muszę tyle wydawać. Zacząłem zbierać wszystkie paragony, wszystkie rachunki i je spisywać, tak żeby sprawdzić na co wydaję swoje pieniądze. Spisywałem do notesu ile wydałem na jedzenie, mieszkanie, wyjścia, imprezy. Niesamowite, bo już po dwóch miesiącach wiedziałem ile potrzebuję pieniędzy, aby mi wystarczyło na wszystkie wydatki. Natomiast trzy miesiące są optymalne, aby wyciągnąć jakąś statystykę i wnioski. Wiedziałem ile gotówki potrzebuję, aby utrzymać ten standard wydatków jaki miałem wcześniej, mimo tego, że nie było mnie stać na takie wojaże.

Samo spisanie wydatków przez kilka kolejnych miesięcy pokazało mi ile z początkiem miesiąca mogę zaplanować. Dostaję wypłatę i przeznaczam – na jedzenie wydam tyle, na mieszkanie tyle, a na paliwo tyle. Wszystko zgodnie z poprzednimi statystykami. Widząc te kwoty jestem w stanie zoptymalizować wydatki. Wiem ile pieniędzy dostaję, wiem mniej więcej ile konieczne jest do wydania – absolutne minimum (rachunki i określona kwota na jedzenie). Wiem też z poprzednich miesięcy ile wydaję np. na paliwo. Taka statystyka posłuży mi dalej, do kolejnych obliczeń i planowania.

Budżet

Jeśli mam świadomość ile wydaję łatwo jest mi określić ile mniej więcej mogę wydać na poszczególne wydatki. To są budżety. Z każdą wypłatą dzielę ją na ramy pieniężne jakie jestem w stanie wydać. Określam poszczególne budżety – jedzenie, czynsz, media, paliwo, ubrania, wyjścia i wydarzenia itd. Dzielę wypłatę tak, aby bilans równał się zeru. Tak! Rozdysponowuję od razu całą gotówkę jaką posiadam. Odpowiednie określenie sobie, że nie wydamy np. na jedzenie więcej niż określona kwota to mentalnie przynajmniej ograniczy nas przed zakupem niepotrzebnych rzeczy. Nie mówię tu, aby głodować, ale nie macie pojęcia ile produktów kupujemy zupełnie niepotrzebnie, a później je wyrzucamy do kosza – tym samym wyrzucając nasze pieniądze. Na prawdę dużo można zaoszczędzić na wyjściach i jedzeniu poza domem. Oczywiście nie brońmy sobie, ale zbyt częste stołowanie się w restauracjach bardzo zasysa wnętrze portfela.

Oszczędności

Wiedząc już ile wydaję i na jakie budżety ile gotówki przeznaczam obserwuję taki stan przez kilka miesięcy – dajmy na to dwa/trzy miesiące. Po tym czasie łatwo zauważam ile pieniędzy wydaję osobiście na poszczególne budżety. Już po jednym miesiącu widać czarne na białym które budżety można zmniejszyć następnym razem, a które jednak podnieść. Pewnego razu okaże się, że nie musimy wcale wydawać całej wypłaty na określane budżety i zostaje nam nadwyżka. Często nie mała. Ja po kilku tych wstępnych miesiącach nie spodziewałem się tego ile pieniędzy mogę sobie odłożyć. Nie zarabiając więcej. Po prostu. Oszczędność jaką przewiduję po spisaniu budżetów określam jako wydatek, ponieważ to jest de facto mój wydatek. Nie będę korzystał w najbliższej przyszłości z tych pieniędzy, więc w tym miesiącu je zwyczajnie wydaję, ale na swoje konto oszczędnościowe. Kwota jest raz większa, raz mniejsza, ale staram się, aby w każdym miesiącu jakaś była.

Bilans

Spisywanie przepływu swoich pieniędzy jest bardzo istotne. Każdego dnia wiem ile mam na koncie, wiem ile wydałem, a przede wszystkim wiem ile mogę jeszcze wydać i czy mi na wszystko wystarczy. Wiedza w temacie aktualnie posiadanych pieniędzy i ich stanu jest niezwykle przydatna dla osobistej psychiki. Nagle nie musimy się martwić czy nam wystarczy, czy aby na pewno mogę to czy tamto kupić. Zwyczajnie wiemy czy i ile mamy. Kluczem jest systematyczne bilansowanie. Jeśli kalkulowane pieniądze są widoczne, bilans jest czysto i przejrzyście prowadzony, wtedy łatwo można do niego zaglądać nie gubiąc się. Warto pisać ile jeszcze nam zostało gotówki, czy przekroczyliśmy któryś budżet i o ile oraz ile możemy wydać jeszcze w każdym z budżetów.

Excel

Przyszedł czas, że potrzebowałem spisywać moje wydatki bardziej czytelnie niż w notesie. Podstawowym narzędziem do kalkulacji jest oczywisty Microsoft Excel. Próbowałem sam stworzyć sobie arkusz, na którym spisywał bym sobie wydatki. I miałem taki arkusz. Starałem się dokładnie zbierać paragony i skrupulatnie wpisywałem to do Excela. Jednak kiedy wydatków jest dużo, ciężko zebrać je w jakieś dane, tabele, fajnie podzielić i zaprezentować. Tak żeby przynajmniej było to czytelne. Czytając blog Michała Szafrańskiego trafiłem na jego kalkulator budżetów. Pobrałem i korzystałem. Jednak to nadal Excel… Dokument nie oddawał tego co chciałbym widzieć. A chciałem widzieć wiele…

Pomysł

Już od samego początku przygody z kontrolowaniem budżetu miałem się z zamiarem napisania aplikacji, która będzie mi to wszystko liczyła. Proste formularze do dodawania wydatków, dochodów, budżetów i przede wszystkim, abym wiedział ile aktualnie mam na koncie, a przynajmniej ile powinienem mieć. Po to by widzieć gdzie kasa ucieka i jaki jest jej przepływ. Chciałem też, by były widoczne od razu jakieś statystyki – jak się ma ten miesiąc do poprzedniego, dlaczego wydałem więcej niż miałem wydać i na co poszły pieniądze.

Nowe technologie

Od jakiegoś czasu jestem frontendowcem. Kilka aplikacji mniejszych i większych napisałem, kilka stron i innych tego typu rzeczy. Z architekturą sobie radzę, z analizą też. Wystarczyło ruszyć. Jednak perspektywa pisania kolejnej aplikacji w znanych mi już technologiach gasiła zapał jak tsunami świeczkę.

Na początku 2017r. trafiłem na Firebase od Google. To był “game-changer” mojego podejścia do developmentu. Wiele musiałem się nauczyć, ale JavaScript znam, Angulara też. Nic nie stoi na przeszkodzie, aby nową aplikację stworzyć właśnie za pomocą Firebase! Fajne jest wiele rzeczy w Firebase – to że jest już zarządzanie użytkownikami, to że jest szybka baza NoSQL, to że jest hosting z SSL, to że jest Node i wiele wiele innych. Poczytałem, popróbowałem i stwierdziłem że się nada idealnie. W głowie cały czas miałem to, że Firebase pozwala na update widoków na żywo w real-time, więc stworzenie tej aplikacji jako Progressive Web App było oczywistym celem. Uruchomiona na dwóch urządzeniach aplikacja działa podobnie do Google Docs – jeden zapisuje, drugi widzi to natychmiast u siebie, bez odświeżania strony, bez żadnej interakcji. Bajka!

Analiza i development

Oczywiście na początek musiałem zebrać wszystkie kłębiące się w głowie pomysły. Uruchomiłem Jirę i zacząłem dodawać sobie taski. Od ogółu do szczegółu… Budżety, wydatki, dochody, oszczędności, sposób zarządzania użytkownikami, uprawnienia, projekt bazy danych, design, ułożenie elementów (UX), płatności, ustawienia, kolory, architektura, technologie i paczki NPM. Development rozpocząłem oczywiście od postawienia wszystkiego tak, aby cokolwiek się wyświetlało. Jako że byłem bardzo ciekawy jak ten Firebase sprawdzi się w akurat tej aplikacji zacząłem od autentykacji użytkowników i integracji z logowaniem przez Google i Facebooka. Przy tym na ruszt wrzuciłem architekturę angularową, ponieważ na czymś bazować trzeba. Pod Firebase jest stworzona wtyczka łącząca z angularowymi ficzerami. Głównym tu problemem jest zamiana obiektu na tablicę, ale nie będę się na ten temat rozpisywał.

Co do analizy – działałem spisując wydatki już od jakiegoś czasu, miałem mniej więcej rozeznanie jak to powinno wyglądać, wiedziałem co i jak ma się liczyć i jakie dane chcę uzyskać. Wiele pomogła książka i blog właśnie Michała Szafrańskiego – te materiały głównie posłużyły mi jako wstępna analiza problemu. Jak widać nie małego, bo jego blog czyta wiele osób i wielu te materiały pomogły w życiu.

Z utworzonych tasków podzieliłem zakres na sprinty. Określiłem zadania na najbliższe trzy miesiące i wyznaczyłem estymacje na każdy task, tak aby pilnować tempa. I samego siebie. Rejestrowałem czas nawet przeznaczony na każdy z tasków. W określonych terminach publikowałem kolejną wersję na serwer, tak aby dać ją znajomym do poklikania, a przy okazji żebym ja mógł z czegoś takiego korzystać na co dzień. Takie użytkowanie własnej aplikacji w normalnych warunkach pokazuje natychmiast jak wiele rzeczy przeszkadza, jak wiele rzeczy trzeba by usprawnić, aby korzystanie z aplikacji było łatwe i przyjemne. W końcu to ma służyć wielu ludziom i ma działać tak, żeby użytkownik nie zniechęcił się po pierwszym zapisaniu danych.

Demo

Po większych i mniejszych problemach, wielu dniach nauki samego wykorzystania Firebase i rozwiązaniu problemów czysto biznesowych i architektonicznych powstała wersja testowa. Napisanych jest w pełni 5 modułów. Bilans, budżety, dochody, wydatki i oszczędności. Aplikacja świetnie spełnia moje oczekiwania oraz pomaga mi w codziennym spisywaniu wydatków i kontrolowaniu moich pieniędzy. Do tej pory kilkunastu użytkowników zarejestrowało się by z tej aplikacji skorzystać, a przynajmniej przetestować. Aktualnie jest to wersja demo, testowa, alfa. Zwał jak zwał, ale na pewno nie w pełni funkcjonalna i pozbawiona błędów. Natomiast Ci z Was, którzy chcieliby zobaczyć jak to wygląda zapraszam do testowania, klikania i wypowiadania się na temat tej aplikacji. Każdy feedback będzie dla mnie cenny.

Zdaję sobie z tego sprawę, że jeszcze wiele jest do zrobienia. Coś może nie działać, gdzieś mogą występować błędy – żadna aplikacja nie jest bezbłędna. Prace nad aplikacją ciągle trwają i będą trwały jeszcze długo. Mam nadzieję, że przynajmniej część z Was ona zainteresuje, a feedback będzie wyczerpujący i pomoże w tworzeniu oprogramowania zbliżonego do idealnego.

monly.pl

Serdecznie zapraszam 🙂