Giter Club home page Giter Club logo

rotten-tomatillos's Introduction

Rotten Tomatillos - Turing Mod 3 Paired Project


Screen Shot 2020-12-15 at 3 35 06 PM

Table of Contents

Project Overview


Rancid Tomatillos is a movie rating and information site where a user can get trailers and info for new and upcoming films, which are pulled from a heroku API.

It was created as a Module 3 project in the Turing Front End Engineering course.

Features


  • Random Film Previews on Load - The site gets a random movie from the information pulled from the API and displays the films trailer and information to the user.

  • Completely Searchable - The site responds in real time to queries using the search bar and displays them to the user

  • Detailed Movie Information - Each movie can be clicked in order to preview details from the film, such as release date, budget, trailer, and overall rating.

  • Fast and Responsive - Using React, the site provides a quick and responsive user experience.

  • Navigation and Bookmarking - Router allows the user to navigate the site using common sense URLs, as well as allowing the ability to bookmark their favorite movies.

  • Contains Robust Testing - All functionality is complimented by a robust testing suite, enabling easy expansion of the code base.

Technologies And Tools


  • JavaScript (ES6)
  • HTML
  • CSS/Scss/Sass
  • React
  • Router
  • JSX
  • Jest

Challenges


  • Integrating async testing
  • Working with states of React components
  • Implementing HTML and JavaScript logic in React

Wins


Creating a responsive website with multiple features.

ScreenShots and Demos


Homepage


homepage

**Under the Hood**

Homepage:

Homepage is a landing page for users. As you open the website the first thing users will see is a randomly chosen trailer from the library that starts palying automatilly. The sound was disabled for this feature. The trailer conatainer has all necessary informmation about the movie such as: title, release date, genres, and time.

For displaying trailers we used react-player component:

<ReactPlayer
  data-testid={`${this.state.movieTrailer}`}
  className="react-player"
  url={`https:www.https://www.youtube.com/watch?v=${this.state.movieTrailer}`}
  width="100%"
  height="100%"
  controls={false}
  muted={true}
  playing={true}
  loop={true}
  config={{
    youtube: {
      playerVars: {
        disablekb: 1,
        fs: 0,
        iv_load_policy: 3,
        playlist: `${this.state.movieTrailer}`,
        modestbranding: 1,
      },
    },
  }}
/>

Under the trailer users will find the list of all available movies which are clickable. On click the website takes users to a single movie page that contains detailed information about a chosen movie.

The navigation bar on top of the website includes a search bar that allos users to find a specific title of the movie, if the title is not found the page shows nothing.

Search bar demo:

searchbar


Single Movie Page


gif-customer-bookings

**Under the Hood**

Movie Preview Page:

Here the users will find the following information about the chosen movie:

  • Movie Poster
  • Rating
  • Release Date
  • Runtime
  • Budget
  • Revenue
  • Genres
  • Overview
  • Trailer

Users are able to return to the homepage by pressing the closing button in the top right corner.


Roadmap


Future additions to include:

  • Create alphabetical sorting for the home page movie view
  • Create user accounts with login
  • Add watchlist/save movie functionality linked to user accounts

Credits

Olga Morgan

Olga Morgan GitHub Profile

Shawn Truesdale

Shawn Truesdale GitHub Profile

rotten-tomatillos's People

Contributors

shawntru avatar okalimbet avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

okalimbet

rotten-tomatillos's Issues

Create single movie layout

  • When a user clicks a movie, that movie’s details should be rendered

  • When a movie’s details are displayed, none of the other movies will be visible; it should just be that movie’s details (header/footer/etc can still be visible, of course!)

  • When a movie’s details are displayed, the user should have a way to return to the main view of all movies

Homepage: displayed movies

As the User when I open the website

I should see all movies displayed having the following items:

  • Poster
  • Title

Movies are displayed in a row and wrap with resizing the browser window

Create testing for MoviePreview

should display movie poster, background, and all relevant info for the movie
Should update state, clearing
clickedMovie: '',
movieObject: {},

Create testing for App

should display navbar, homepage movie display, error message when possible.
Integration tests for functionality.

Homepage: components

The main components of the homepage:

  • nav bar
  • all-movies wrapper
  • movie card with an image and a title

Enter clears Search Form

As user,

Pressing enter after typing in the text box in search form clears the text box and does not search.

Homepage/search-movies-by-title

As User

I would like to be able to search movies by a title

Add search bar on the homepage that allows users to find a specific movie or a list of movies based on keywords

Homepage: nav bar

The nav bar should have the following elements:

  • Website Title (centered)
  • Home button that is only visible on a single movie page to let users return to the homepage

Homepage: movie click event

When users click on a movie card

onClick event should take them to a single movie page where

they can see all the information about the chosen movie

File organization

Re-group files into modulars/component based folders for a better organization:

-App
-Movies
-MovieCard
-NavBar
-MoviePreview(example name)

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.