Coder Social home page Coder Social logo

viewing_party_lite_7's Introduction

Viewing Party

Table of Contents

Project Description

"Viewing Party" This project is a web application that allows users to explore movies and create and schedule viewing parties with other users on the platform.


Summary of Work

This project has 3 areas that we built out with functionality:

User Creation

When a user visits the welcome page, if they have not already created a user account, they will be prompted to create a new user with their name and email.

Discover Movies

Once a user has created their account, they will see a link on their dashboard to look through top movies or search for a movie by title. When the user follows either of these paths, the application will consume multiple external API endpoints to load movie results. The user can then click on an individual movie to pull up a list of details from that movie, including its title, vote average score, applicable genre(s), a summary, the first 10 cast members to appear in the credits, and a list of reviews on the movie.

Viewing Party Creation

When viewing a movie's details, a user can create a viewing party for that movie, schedule the viewing party on a particular date and at a specific time, and they can invite as many or as few of the other users on the platform as they would like. Viewing parties that a user is hosting as well as those they are invited to will both appear on their user dashboard, including details such as movie poster, movie title, viewing party date and time, and the list of invitees.

Contributors

Ideas for Refactor

  • Add more PORO classes to ensure that all API consumption for movie_credits and movie_reviews get abstracted into ruby objects before the data ever gets to the controller and ultimately the view
  • Finding more opportunities to flash error messages in sad-path situations
  • Seek out more opportunities for further edge case testing

viewing_party_lite_7's People

Contributors

lanebret85 avatar kbug819 avatar mikedao avatar

Forkers

kbug819

viewing_party_lite_7's Issues

Movie Details Page

When I visit a movie's detail page (/users/:user_id/movies/:movie_id) where :id is a valid user id,
I should see

  • a button to Create a Viewing Party

  • a button to return to the Discover Page
    I should also see the following information about the movie:

  • Movie Title

  • Vote Average of the movie

  • Runtime in hours & minutes

  • Genre(s) associated to movie

  • Summary description

  • List the first 10 cast members (characters&actress/actors)

  • Count of total reviews

  • Each review's author and information

NOTE: The above information should come from 3 different endpoints from The Movie DB API.

Details
The "Create a Viewing Party" button should take the user to the new viewing party page (/users/:user_id/movies/:movie_id/viewing-party/new),

Landing Page

When a user visits the root path they should be on the landing page ('/') which includes:

  • Title of Application
  • Button to Create a New User
  • List of Existing Users which links to the users dashboard
  • Link to go back to the landing page (this link will be present at the top of all pages)

Dashboard: Viewing Parties

As a user,
When I visit a user dashboard,
I should see the viewing parties that the user has been invited to with the following details:

Movie Image
Movie Title, which links to the movie show page
Date and Time of Event
who is hosting the event
list of users invited, with my name in bold
I should also see the viewing parties that the user has created with the following details:

Movie Image
Movie Title, which links to the movie show page
Date and Time of Event
That I am the host of the party
List of friends invited to the viewing party

Discover Movies Page

As an user,
When I visit the '/users/:id/discover' path, where :id, is the id of a valid user,
I should see

  • Button to Discover Top Rated Movies
  • A text field to enter keyword(s) to search by movie title
  • A Button to Search by Movie Title

Details When the user clicks on the Top Rated Movies OR the search button, they should be taken to the movies results page (more details of this on the Movies Results Page issue.

The movies will be retrieved by consuming The MovieDB API.

User Registration Page

When a user visits the '/register' path they should see a form to register.

The form should include:

  • Name
  • Email (must be unique)
  • Register Button

Once the user registers they should be taken to a dashboard page '/users/:id', where :id is the id for the user that was just created.

Rubocop

You will use RuboCop to enforce style guidelines. This is not a requirement for the project, but it's something we'd like for y'all to set up.

RuboCop will be installed when you bundle install. Simply run bundle exec rubocop from the command line to see if there are any violations. Run RuboCop throughout the project to pick up on style violations as you go.

As you work through the project, you may find some of the RuboCop complaints difficult to decipher. Reference the RuboCop documentation and the RuboCop Rails documentation for more information.

Please reach out to your instructors if you find any style violations that you believe should not be enforced. Ask your instructors before editing .rubocop.yml

New Viewing Party Page

When I visit the new viewing party page (/users/:user_id/movies/:movid_id/viewing-party/new, where :user_id is a valid user's id),
I should see the name of the movie title rendered above a form with the following fields:

  • Duration of Party with a default value of movie runtime in minutes; a viewing party should NOT be created if set to a value less than the duration of the movie
  • When: field to select date
  • Start Time: field to select time
  • Checkboxes next to each existing user in the system
  • Button to create a party

Details When the party is created, the user should be redirected back to the dashboard where the new event is shown. The event should also be listed on any other user's dashbaords that were also invited to the party.

Movie Results Page

When I visit the discover movies page,
and click on either the Top Movies button or the Search button,
I should be taken to the movies results page (users/:user_id/movies) where I see:

  • Title (As a Link to the Movie Details page)
  • Vote Average of the movie

Details: There should only be a maximum of 20 results. The above details should be listed for each movie.

I should also see a button to return to the Discover Page.

User Dashboard Page

When I visit '/users/:id' where :id is a valid user id,
I should see:

  • "<user's name>'s Dashboard" at the top of the page
  • A button to Discover Movies*
  • A section that lists viewing parties**

*more instructions on this in the Dashboard:Discover Movies issue.
**more instructions on this in the Dashboard:Viewing Parties issue.

Dashboard: Discover Movies

As a user,
When I go to a user dashbaord,
and click "Discover Movies" button,
I am redirected to a discover page /users/:id/discover, where :id is the user id of the user who's dashboard I was just on.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.