CRUD Stuff for Projects

With specs.
This isn't needed because there is no view