Description - One2Remember/UrbanFlix GitHub Wiki

Design Document

Link to our design document (hosted here on GitHub)

State of System

The application is fully functioning with regards to our initial project specifications per our original design document. Any user, with or without an account, can view movie reviews from the home page and can search a movie title, generating a list of reviews matching that movie. The lists of reviews displayed on the home page, after searching, and on the user profile are populated by the database via RecyclerViews. If the user wants to upvote, downvote or create a review, they must log in or create an account if they don't have one already. Creating an account will save their login credentials in the database, and logging into an existing account will requires validating the user's credentials from the database's stored credentials. Once logged in, in addition to being able to create a review and upvote/downvote, the user will be given the option to go the their account page. From there, they will be given the option to logout and can view a list of their posted reviews, sorted oldest to newest.

All database operations are handled by the FirestoreHelper class, which takes the place of the "Database" class per our original design specifications. Any queries, pulls, or pushes go through the firestore helper, eliminating the need for GUI operations to interface directly with the database. The only other class that directly interfaces with the database is the abstract FirestoreAdapter class, which we extend to populate our recycler views.

Similarly, all Shared Preferences operations are handled by the FirestoreHelper class, eliminating the need for any GUI operations to interface directly with Shared Preferences.