Seuraavassa lyhyt esittely kehittämästäni varallisuudenhallintasovelluksesta.
Jutun lopussa kerron käyttämistäni ohjelmointityökaluista ja -menetelmistä.
Taseen kirjaaminen varallisuudenhallinnan verkkosovelluksessa
Sovelluksessa voi luoda uuden taseen esimerkiksi kerran kuukaudessa. Taseeseen kirjataan tilien saldot tiettynä päivänä.
Listanäkymässä näkee kokonaisvarallisuutensa sekä bruttona (gross) että nettona (net). Erona on, että nettosummasta on vähennetty maksettavaksi koituvat verot, jos päättäisit myydä omaisuutesi ja muuttaa Thaimaahan joogaopettajaksi.
Klikkaamalla tasetta pääsee muokkaamaan tilien rahasummia ja kirjoittamaan kommentteja. Jokaisen tilin osalta on näkyvissä ero edelliseen taseeseen.
Tilien hallinta varallisuudenhallinnan verkkosovelluksessa
Taseissa näkyviä tilejä hallinnoidaan omasta listanäkymästä.
Tili täytyy luokitella sen huomioimiseksi yhteenvetoraporteissa. Omaisuuden myynnistä aiheutuvan veroprosentin voi halutessaan syöttää. Tilin saldon historiallisen kehityksen ja tulevaisuuden ennusteen näkee oheisessa kuvaajassa.
Ryhmittelin omaisuustyyppini muutamaan luokkaan:
Varallisuusluokka | Esimerkkejä |
---|---|
Käteinen | Lompakko, pankkitili, |
Lyhytaikainen | Luottokorttivelka, laina ystävälle |
Pitkäaikainen | Asunto, metsä |
Kiinteä | Mökki, omaisuus jota et aio myydä |
Sijoituspääoma | Alkusijoitus osakkeisiin tai ETF:iin |
Sijoitusvoitto | Osakkeiden tai ETF:n arvonnousu |
Laina | Asuntolaina, opintolaina |
Varallisuusluokkaa määrittävä tekijä on, kuinka nopeasti se voidaan tai kannattaa muuttaa käteiseksi ja millaisia veroseuraamuksia myynnistä aiheutuu.
Ennusteet varallisuudenhallinnan verkkosovelluksessa
Koska tase kertoo vain menneestä, järjestelmällinen varallisuuden hallinta edellyttää myös ennusteita.
Ennusteet on ryhmitelty kokonaisuuden hahmottamiseksi.
Ennusteen voi asettaa toistuvaksi esimerkiksi kerran kuukaudessa. Ympyränuoli-ikoni osoittaa jäljellä olevat toistot.
Vaakaikoni osoittaa vaikutuksen kokonaisvarallisuuteen seuraavan vuoden aikana.
Ennusteille määritellään funktio, joka suoritetaan valittuna päivänä. Oma funktio löytyy rahasumman lisäämiseen tai vähentämiseen tililtä, siirtämiseen tilitä toiselle, lainan takaisinmaksuun, sijoitustuotolle ja saldon muuttamiseksi kertoimella.
Analytiikka varallisuudenhallinnan verkkosovelluksessa
Tietojen syöttämisen tavoitteena on tuottaa hyödyllistä analytiikka parempien taloudellisten päätösten tekemiseksi.
Kiinnostavin kuvaajista lienee kokonaisvarallisuuden trendi. Toinen tärkeä graafi on käteisvarojen ennuste.
Ohjelmistokehityksessä käytetyt työkalut
Käytin sovelluksen kehittämiseen vakiotyökalupakkiani.
Käyttöliittymä ja taustajärjestelmä jaetaan samalta palvelimelta FastAPI
-viitekehystä hyödyntäen. Ohjelmakoodi on siis Pythonia.
Käyttäjänhallinta on loogisesti eriytetty kokonaisuutensa.
Käyttöliittymä on HTML:ää ja Javascriptia. Yksittäisiä komponentteja on tehty React
illa. Kehitin yksinkertaisia Javascript-funktioita, joiden ansiosta sovellus toimii niin sanotusti yksisivuisena. Käyttäjälle tällainen toteutus näyttäytyy nopeampana siirtymisenä näkymien välillä ja kehittäjälle helpompana tilan hallintana.
Varallisuudenhallintasovellus pilvessä
Sovellus toimii Docker-kontista yhdestä portista. Käyttöliittymä ja taustajärjestelmä löytyvät eri url osoitteista, esim /app
ja /api
.
Käytän kolmea eri ympäristöä:
- Oma tietokone kehitykseen
- Testiympäristö pilvessä
- Tuotantoympäristö pilvessä
Jokaisen vaiheen jälkeen omalta koneelta voi ajaa tietokantamuutokset ja testisarjan käsin. Koko prosessi ei ole siis täysin automatisoitu.
Google Cloudissa Docker-konttia isännöidään Google Cloud Run-palvelussa.
Web-sovelluksen tietokanta
Tietokanta on PostgreSQL
. Mielestäni SQL-tietokanta tekee sovelluskehityksestä systemaattisempaa, vaikka skaalautuvuus kärsisi. Tosin ongelmia ilmaantuisi vasta todella suurilla käyttäjämäärillä.
Kehitysympäristössä tietokanta on erillisessä Docker
-kontissa. Tämä mahdollistaa kehitystyön myös netin toimiessa kehnosti. Testi- ja tuotantoympäristössä sovellus on yhteydessä Google Cloud SQL-tietokantapalvelimeen.
Sovellus on suunniteltu toimimaan useille käyttäjille. Ensimmäinen lähestymistapani oli luoda jokaiselle oman tietokanta.
Tämä osoittautui todella epäkäteväksi tietokannan vaatiessa muutoksia. Jokaisen käyttäjän tietokanta piti päivittää erikseen.
Siirryin lopulta malliin, jossa sovelluksella on vain yksi yhteinen tietokanta kaikille käyttäjille. Yhdestä sarakkeesta löytyy tieto, kenelle mikäkin kirjaus kuuluu. Vaikka toteutustapa vaatii enemmän ohjelmalogiikkaa, se vaikuttaa kokonaisuutena paljon selkeämmältä vaihtoehdolta.
Äärimmäistä tietoturvaa vaativille asiakkaille olisi silti mahdollista luoda omat tietokantapalvelimensa kohtuullisella vaivalla.
Tietokannan muutosten hallintaan käytetään Alembic
-kirjastoa.
Varallisuudenhallintasovelluksen kustannukset
Kustannuksia tulee lähinnä tietokannasta, noin 10 euroa kuussa. Koska sovellus on tällä hetkellä vain omassa käytössäni, samaa tietokantaa voi hyödyntää myös muihin harrasteprojekteihin.
Google Cloud Run on omassa käytössä lähes ilmainen.
Kirjoita uusi kommentti
Nimi näytetään muille. Sähköpostia ei julkaista. Lisää tietosuojasta.