Skip to content
The server for my budget app
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Budget App Server

Title under development. This is the server that powers the Budget App.


  • Savings goals
  • Envelopes for allocating funds
  • Expense tracking
  • RESTful API
  • Authentication by Auth0

Technical Design Notes

The server is built with KoaJS. Authentication is provided by Auth0.


A high fidelity mockup of the client app can be viewed here. This is still under development and will probably change once I begin to build the client app.

API Documentation

The API specification can be found here. It was built using Postman. This is under active development as I am currently building the server. The API spec for the current release will be fully documented in the server readme (to keep this document clean and concise).

Database schema

The ER diagram/ database schema can be found here. It was built in SqlDBM. This is also subject to possible changes, although I'm confident that it's basically correct and complete.


At the moment this project has yet to reach a working pre-alpha release. If you want to play with the code, then clone the repo.

git clone
cd budget-app-server
npm install

The .env file for the server needs to be created and configured to connect to a mysql compliant server with the relevant tables created. See the template .env for an example (still working on it). You will also need to create a user in the database and give it access. The CORS settings need to either match your client address or be turned off (setting it to * should work).


Assuming you've configured the .env correctly and set up a MariaDB or other MySQL compliant database, you should be good to go.

npm run serve


  • KoaJS
  • Koa Trie Router
  • MySQL


Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.



You can’t perform that action at this time.