Lots of backend changes

Reworking how the app functions due to feature requests. This one now
requires the user to log in before doing anything.