Dwa lata temu po przetestowaniu kilku rozwiązań, pokroju Excel i inne gotowe w sieci aplikacje do zarządzania budżetem domowym postanowiłem, że utworzę własną, taką skrojoną pod siebie i moją rodzinę. Dziś opiszę, co udało się zrobić po dwóch latach pracy, jakie decyzje zostały po drodze podjęte, z czego zrezygnowaliśmy, a także jakie nowe funkcjonalności powstały.
Na początku był to bardzo prosty formularz, w którym jedynie mogliśmy wybrać komu i ile zapłaciliśmy, a także zakwalifikować to do odpowiedniej kategorii, ewentualnie dodać wpis, że dostaliśmy wypłatę. Z czasem, gdy natłok różnych obowiązków uniemożliwiał, żeby wpisywać na bieżąco wydatki, pojawiały się komplikacje, pokroju, trzeba ręcznie wpisać datę, co spowodowało, że dodałem guzik, który wyświetlał kalendarz i mogliśmy wybrać datę. Na początku zaspokoiło to nasze potrzeby. Rok później, kiedy na świat przyszła Ala, i kredyt hipoteczny, dostarczyło to dodatkowych obowiązków, a także notowania z kolejnego konta bankowego. Po dłuższym czasie utworzyłem sposób na importowanie z csv-ki wszystkich transakcji z banku, po stronie użytkownika wystarczyło już tylko wybrać kontrahenta i kategorię, do jakiej przypisany miał być zysk lub wydatek. Natłok kategorii, jakie posiadamy spowodował, że:
- nie używamy wszystkich
- nie jest łatwo z jednego ComboBoxa wybrać kategorię, jaka Nas interesuje
W związku z tym, po dłuższym kodowaniu, utworzyłem rozwiązanie, które podpowiada sugerowaną kategorię, dla danego kontrahenta. Wystarczyło już tylko raz ustawić przy danym kontrahencie kategorię, a ta następnie była automatycznie wybierana, przy wskazaniu kontrahenta w kosztach.
Plany na przyszłość
Aktualnie planuję przebudować GUI, jest dosyć archaiczne i, wciąż, mało przyjemne użytkownikowi. Przy lekkim opóźnieniu zdarzało się, że żona podczas wprowadzania, wprowadzała dwa razy ten sam wydatek. Jeżeli popełniła błąd przy ustawieniu kategorii, to jeszcze potem mogłem wychwycić, jak robiłem ręczne, tak wciąż ręcznie, podsumowania za danym miesiąc. Zapewne istnieje wiele pozycji, które nie zostały wykryte jako duble.
Dodatkowo chcę rozbudować moduł podsumowania i planowania, aby nie robić tego ręcznie, jak do tej pory, tłukąc zapytania ręcznie i przepisując wartości do Excela, aby postawić słupki.
Kolejnym krokiem jest utworzenie paczek w taki sposób, aby każdy mógł sobie pobrać i używać. Głównym zadaniem tej aplikacji było, abyśmy mogli kompletować dane poprzez dowolny komputer w domu, jednocześnie nie wynosząc tych informacji do zewnętrznych dostawców. Niewątpliwą zaletą jest to, że taką aplikację może mieć każdy w domu, kto potrafi skonfigurować sobie pendrivea pod routerem.
Co okazało się strzałem w dziesiątkę
Importowanie danych bezpośrednio z csv-ki. Fakt, że jest to nadal w fazie dopieszczania, bo każdy bank inaczej reprezentuje wyniki w tym pliku, co wymaga wciąż od użytkownika wiedzy, jak przygotować taki plik. Jednakże, na aktualnie swoje potrzeby, mamy ogromny sukces, bo na jednym oknie, czas importu danych z poprawnym przypisaniem kategorii za cały miesiąc sięga grubo poniżej 30 minut. Dlaczego wciąż tak długo? Tutaj dochodzi specyficzny sposób opisów transakcji w banku, a nam zależy na tym, aby np. zapisać, że 20-10-2022 były zakupy na allegro, ale one konkretnie dotyczyły np. części do samochodu, a nie po prostu mieć wpis: Allegro — Zakupy w Internecie.
Z czego zrezygnowaliśmy
Zrezygnowaliśmy z tzw. transferu środków, przeksięgowania środków. Robiło to więcej zamieszania, niż było warte. Uznaliśmy po czasie, że nie jest nam potrzebna wiedza, jaką drogę przebywają pieniądze od wypłaty. Po prostu robiło się za dużo zamieszania. Taki oto przykład: zarobione pieniądze dostaję na swoje konto firmowe, z niego płacę podatki itd., natomiast sobie daję tzw. wypłatę, czyli jakąś tam część pieniędzy przelewam na konto prywatne. Więc to już formalnie dawało nam 2 wpisy, no bo z jednego konta ubyło, a w drugim przybyło. Następnie z prywatnego wypłata gotówki i mamy kolejne 2 wpisy, no bo na koncie „Gotówka” przybyło, ale na prywatnym ubyło. Tak więc, pieniądze, które jeszcze nie zostały na nic wydane, zrobiły już 4 wpisy w historii, które potem musiałbym odfiltrować przy podsumowaniu, no bo one nic nie wnoszą z perspektywy zarządzania wydatkami.
Drugą rzeczą, z której zrezygnowaliśmy aktualnie, to planowanie wydatków przez aplikację. Do tego modułu podszedłem po macoszemu, przez co powodował On więcej problemów, niż korzyści. Także techniczne niedociągnięcia i tak naprawdę brak sprecyzowanych celów co do tego, jak on ma wyglądać i co robić spowodowało, że łatwiej było dla mnie wykonać kilka zapytań SQLowych na bazie, zamiast tworzyć widoki w aplikacji.
Zmierzając do końca
Mimo wszystko mamy za sobą udane 2 lata notowania wydatków i zysków. Co nie tylko pozwoliło Nam kilkukrotnie przygotować się na większe wydatki, ale także, co ważne dla mnie, jako programisty, ze zwykłej aplikacji, która leżała po prostu na dysku powstała aplikacja, której ktoś używa, fakt, że na razie tylko (aż!) dwie osoby, ale przeszła próbę czasu i jest już swego rodzaju legacy, które wciąż czeka na nowe funkcjonalności i nowy widok.