Rough first pass for the back-end webapp