Open Budget UI v0.1.0

OpenBudget UI v0.1.0 has been released! You might think that UI is now on par with Core, but that’s not really the case.

Here are the changes that happened in this release:


  • Added
  • This project.
  • Use Material UI as the foundation for OpenBudget’s UI.
  • Add the basic layout for the app.
  • Connect this project to OpenBudget Core’s API.
  • Allow users to authenticate in the app.
  • Add Accounts List page

This release still lacks some pages/actions for the Account resource like the Account Info page, Create, Update, and Delete actions for Account. I decided this release would be good enough without those things because v0.1.0 is all about laying down the foundation for the website and not about having a lot of things from the get-go.

One thing that you’ll notice from this release is how little tests there are. I’ve never been much of a front end guy until recently, so I’m not familiar with testing in Javascript.

It’s actually the most challenging part of this experience so far. This is even harder than when I was just trying to learn ES6 and React.

I encountered so many issues with testing because of so many things. First of all, there are countless libraries for testing in Javascript. At the moment, I decided to use Jest because it’s what came with create-react-app and I’m also using enzyme to render the components that I’ve written. Honestly though, I’m not even sure if I’m using the right libraries.

Another thing that makes this all the more complicated is material-ui. I’m using their v1 beta version, but the problem seems to have been apparent since its older versions. There’s a GitHub issue that has been going on until recently talking about how material-ui makes testing a whole lot harder because it keeps injecting stuff into the components.

Sadly, their documentation says very little about testing so it’s really hard to write tests for OpenBudget UI right now. That issue could probably be its own blog post, so I’ll save whatever I have to say about it for now.

On the bright side, a lot of the foundation has been laid out which makes it a lot likely that future development will be faster.