Paper Tracker

What is it?

A proof of concept personal budgeting app based on the envelope method of budgeting. You can create envelopes,transfer funds, track expenses and set up recurring income and expenses. Money flows from the income account to the envelopes you create.

The frontend app was built with Riot.js and Chris Davies' rlite router. The server was built on Koa.js with the least amount of middleware as possible. The api spec was created using Swagger and tested using Postman.

Why does it exist?

This is the result of a personal challenge to build something slightly more real than a to do list app. It's an opportunity for me to learn about RiotJS (a component based ui library), and discover what creating a server app requires in terms of structure and architecture. I also attempted to use git as if I was working with a team to make the app (proper use of branches, rebasing and merging, resolving merge conflicts).

What I learned creating the front end parts of the app has increased my confidence in understanding and utilizing other frontend frameworks such as React and Vue. Creating the serverside parts of the app improved my understanding of javascript ES6 (Koa.js heavily utilizes async/await functions). It also highlighted the need for incorporating deep architectural planning into the design phase of development. Creating the API and mocking it with Postman before beginning the frontend app development would have eliminated several problems I encountered.

Who made it?

My name is Justin Taylor. I'm a Computer Science student at QUT. I taught myself HTML, CSS, SCSS, and Javascript by building things and working through the FreeCodeCamp curriculum.