Initial project commit

It builds and sort of works. Has some UX issues that still need to be
worked out.