Giter Club home page Giter Club logo

rancid-tomatillos's Introduction

Rancid Tomatillos

Table of Contents

Abstract

Welcome to Rancid Tomatillos! This is an application that lets users view a list of 40 movies, learn more about them in further detail and watch their trailers.

View the deployed application here

Screenshots

View of the home page
home-page

View movie details
movie-details

View the trailers
trailer-page

Designed with accessibility in mind
accessibility

Technologies

React
React Router
Cypress
JavaScript
HTML
SCSS

Setup

  • In your terminal, clone this repository down to your local machine by running:
    git clone [email protected]:mr-ryan12/rancid-tomatillos.git
  • cd into the rancid-tomatillos directory
  • Run npm install to install the dependencies
  • Run npm start to start your local server
  • Visit http://localhost:3000/ in your web browser
  • You can close your local server at any time by pressing CTRL + c in the terminal window running your server

Links

Checkout the Turing spec sheet here
Checkout the deployed application here

Challenges and Wins

This was our first project using React, React Router and Cypress for testing. Overall, we are pleased with the outcome, but would like to get more comfortable using these new technologies. It was fun learning about error handling with React and new ways to use Cypress for End-to-End testing.

Contributors

Christine Rowland
Ryan McBride

rancid-tomatillos's People

Contributors

mr-ryan12 avatar fordo29 avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

fordo29

rancid-tomatillos's Issues

As a user, I can click a movie, and see that movie’s details

  • When a movie’s details are displayed, none of the other movies will be visible it should just be that movie’s details
  • When a movie’s details are displayed, the user should have a way to return to the main view of all movies
  • Display single backdrop image
  • Display specific movie overview for the individual card
  • Display specific average rating
  • Display release date

Acceptance Criteria: The user successfully hovers their cursor over the movie image, clicks it and is directed to another page with the details of the movie displayed.

Create tests for error page

  • Should display a message on the page if an incorrect URL is entered
  • Should have an image to supplement the message
  • Should have a 'Back to Home' button

Implement Router Functionality

As a user, when I navigate to a movie card and click on it, I:

  • Should see the URL update to include the movie id
  • Should see the movie's backdrop picture if available
  • Should see additional information about the movie: budget, revenue, overview, genre, etc.

Final Refactor

  • Fix bug causing flash if letters typed in URL
  • Fix failing test that would sometimes have an 'undefined' URL
  • Remove commented out/unused code

As a user, when I click on the 'Watch Trailers' button I should be directed to another page that displays the movie's trailers

  • Create a 'Watch Trailers' button in the movie details page
  • Create another page that lists the embedded trailers
  • Create a class component
  • Create a fetch call to get the trailer data
  • Create a function to clean trailer data
  • Set cleaned data to state

Acceptance Criteria: When the user successfully hovers over the 'Watch Trailer' button, clicks it and is directed to another page that either displays the available trailers, or an apologetic message if no trailers exist.

Create wireframe

Use Figma to build out designs

  • Home page (all movies displayed)
  • Individual movie page
  • Error page
  • Login page?
  • Extension: trailers

Create Individual Movie Tests - Sad Path

  • Should be able to visit the main page and the user will see the application name & fun tagline
  • Should display movie details for the individual movie selected
  • Should return to the home page by clicking the home button

Create Trailer Page

  • Should display the movie title and tagline
  • Should display the trailers for the movie
  • Should display a home button
  • Should display a 'Back to Movie Details' button

Create Home Page tests

  • Should be able to visit the main page and the user will see the application name & fun tagline
  • Should display the poster image passed
  • Should display the movie title
  • Should have an alt text for the image
  • Should display the release date
  • Should have a clickable poster image
  • Should display the average rating
  • Should not display the backdrop image
  • Should display 3 movie cards
  • Should display the movies sorted by release date (newest to oldest)

Create Individual Movie Tests - Happy Path

  • Should be able to visit the main page and the user will see the application name & fun tagline
  • Should display movie details for the individual movie selected
  • Should return to the home page by clicking the home button

Create Error Handling Tests

  • Should be able to visit the main page and the user will see the application name & fun tagline
  • Should display an error modal when the URL is incorrect
  • Should have a refresh button in the error modal
  • Should display message for 500 error
  • Should be able to click the refresh button

Refactor code

  • Refactor apiCalls.js to a single function that accepts url path parameters
  • Refactor cleaning function for readability
  • Refactor testing suites for readability

As a user, if I enter an incorrect url in the address bar, I will be directed to another page indicating the error

  • Should direct the user to an error page
  • Should have the title and tagline at the top
  • Should have an error message displayed on the page
  • Should have an image to supplement the message
  • Should allow the user to navigate back to the home page

Acceptance Criteria: The user types in a url that does not exist in the application and is redirected to another page indicating the page does not exist.

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.