Project - qhuntley/huntley-quill-webdev GitHub Wiki
Introduction
With so many movies being released everyday, it has become increasingly difficult to find a movie you like. The whole process can be somewhat overwhelming. Have you ever spent more time looking for a movie to watch rather than actually watching one? People tend to watch a handful of trailers blindly, hoping to find a movie they will like, but this is not always a successful endeavor. Sometimes the constant promotion of a movie by corporate businesses can hinder one’s ability to tell if they actually would like a movie or not.
Purpose statement
My partner and I propose a solution to this problem by providing a web application to which helps users narrow down their choices, and make the process more efficient. One effective way to make it easier would be to support communication between users, where users are given the ability to review movies and other users are able see these reviews and potentially write their own. Users with similar tastes could follow each other in order to further speed up the process. Sometimes, the continuous promotion material of a movie by corporate businesses can hinder one’s ability to tell if they actually would like a movie or not. It is far more reliable to trust the review of people who share similar tastes. We also thought it would be exciting to provide a space for actors to post about their upcoming, current, and previous movies. This would provide a more intimate relationship between fans (normal users) and celebrity users. Reviewers would have the ability to follow both other reviewers and celebrities, and vice versa.
Chosen API
For our project we will be using The Movie Database (TMDb) found in programmable web TMDb. The TMDb API has great documentation here.
Domain Objects
Our web application will have at least three domain objects: Movies, Reviews, Posts. All users will be able to query the API for movies. Reviewers will be able to review movies, but not post about them. The posting functionality will be given to Celebrities (or Actors), who will post about the movies they have been in. Celebrities can also review movies if they wish to.
Domain Users
The application will have at least three user objects: Admin, Reviewers, and Celebrities. We will also account for Anonymous Users who are not logged in/registered users of the web application.
(At least) Three goals “Reviewers” could accomplish using our website:
- Search movies in the database and navigate to the details page
- Follow other Reviewers or Celebrities
- Write, edit, delete reviews about movies, given the movie a rating out of 5
- View other posts and reviews
(At least) Three goals “Celebrities” could accomplish using our website:
- Search movies in the database and navigate to the details page
- Follow other Celebrities or Reviewers
- Write, edit, delete posts about their upcoming movies, either a text, photo or video.
- View other posts and reviews
(At least) Three goals “Admin Users” could accomplish using our website:
- Perform the CRUD operations on users, posts, and reviews.
- Search movies in the database and navigate to the details page
- Write, edit, delete posts OR reviews, as well as look at other users’ reviews and posts
(At least) Three goals “Anonymous Users” could accomplish using our website:
- Search movies in the database and navigate to the details page
- SEE (not write) reviews and posts from logged in users
- Get an idea of whether or not they want to register as a user
(At least) Two possible relations a “Reviewer” could have include:
- Follow another “Reviewer” or “Celebrity”
- View a “Celebrity” post about a particular movie, and navigate to their public profile
(At least) Two possible relations a “Celebrity” could have include:
- Follow another “Reviewer” or “Celebrity”
- View a “Reviewer” review about a movie they were perhaps in, and navigate to their public profile
(At least) Two possible relations an “Admin User” could have include:
- Create, delete, update “Reviewer”
- Create, delete, update “Celebrity”
- View a “Reviewer’s” review or a “Celebrity’s” and navigate to their public profile
(At least) Two possible relations a “Anonymous User” could have include:
- View a “Reviewer” review about a movie they were perhaps in, and navigate to their public profile
- View a “Celebrity” review about a movie they were perhaps in, and navigate to their public profile
(At least) Two possible relations a “Reviewer” could have with domain objects include:
- Create, update, and delete a “review” and publish it to a particular movie details page and their profile page
- Searches “movies” to find movies to review, look at another Reviewer’s “reviews”, or to see Celebrity “posts” about movies
(At least) Two possible relations a “Celebrity” could have with domain objects include:
- Create, update, and delete a “post” and publish it to a particular movie details page and their profile page
- Create, update, and delete a “review” and publish it to a particular movie details page and their profile page
- Searches “movies” to find movies to review, look at Reviewer’s “reviews”, or to see other Celebrity “posts” about movies
(At least) Two possible relations an “Admin User” could have with domain objects include:
- Create, update, and delete a “post” and publish it to a particular movie details page and their profile page
- Create, update, and delete a “review” and publish it to a particular movie details page and their profile page
- Searches “movies” to find movies to review, look at Reviewer’s “reviews”, or to see other Celebrity “posts” about movies
- Create, update, and delete the “posts” and “reviews” of “Reviewers”and “Celebrities”
(At least) Two possible relations a “Anonymous User” could have with domain objects include:
- Searches “movies” in database
- Find “reviews” and “posts” about a particular movie
Domain to domain relationships:
- A Movie has 0-many Reviews
- A Movie has 0-many Posts
- A Reviewer has 0-many Reviews
- A Celebrity has 0-many Posts, Reviews
- An Admin has 0-many Posts, Reviews
- A Reviewer, Admin, Celebrity have 0-many Followers, Following
-
A Reviewer, Celebrity, Admin reviews many movies and a movie is reviewed by many Reviewers, Celebrities, Admins
-
A Celebrity, Admin posts about many movies and a movie is posted about by many Celebrities, Admins