/rancid-tomatillos

This was the paired project for FrontEnd Mod 3 students at Turing School. First time building a project using React and Cypress.

Primary LanguageJavaScript

Rancid Tomatillos

Table of Contents

Introduction

The primary goal of Rancid Tomatillos was to display movie data from multiple APIs in a user friendly way and to gain experience building an application from scratch using the React framework. As a user, you have the ability to view all movies from the API, as well as search for a specific title, and view additional information about the movie by clicking on a movie card.

Motivation

The main motivation of this project was to gain experience building a React application, Cypress End-to-End testing, and React Router.

Features

Movies Page

When a user visits the website, they will see a display of all the movies from this API. All the movie cards display the movie cover as well as a ranking out of ten for that movie.

Rancid Tomatillos movie display

Details Page

When a user clicks on any of the movie cards, they will see a new page which displays additional information about that movie. From this page, the user can click on the Home link in the header or they can click the back button in their browser to get back to the previous page. When the back button is selected, the movies page should display where the user scrolled to before selecting the movie.

Details page

Under the Hood This npm package was used to maintain the scroll history of the movies page.

Search Functionality

From the movies view, the user can type into the search bar at the top of the page to search for a movie title. The page will automatically update to display only the titles that match what is in the search bar.

Error Page

To maintain a direct and great user experience, we added an error page. The error page is designed to be dynamic to the type of error a user may encounter. Styling this page, we wanted to make it fun and direct.

Loading Screen

In order to keep our user experience positive, we implemented a loading screen that will display while information is being retrieved from the API.

Responsive Design

Responsiveness was a consideration while working on this project. See below for screenshots of the mobile friendly version of the website:

Rancid Tomatillos movie display mobile view Details page mobile view

Continuous Improvement

Throughout our project workflow, we found that our improvement was team-driven with solution-based problem solving and individual learning/teaching opportunities. Whenever there were areas for improvement, one team member had a solution and the desire to teach the other. This kept us moving at a great pace and developed our understanding of new technologies daily.

Wins & Reflections

  • Teamwork & Communication: Together we achieved our set sprint goals in an organized fashion with respect to our project board. Communication was transparent and respectful. Having the ability to relay information, thoughts, and ideas to one another during paired programming allowed a smooth process in development and productivity.
  • Workflow: We found a great balance of paired-programming and individual work time. This allowed us to be extremely efficient and remain on task with what we planned to accomplish each day.
  • Exploring & Researching: Any time we hit a struggle, we took the time to research and apply. Finding certain answers may not have been the exact ones, but we stepped out of our comfort zone exploring other npm libraries that catered to our specific needs and end goal.
  • Overall: During this project, we learned a lot individually and as a team. We both feel that after completion of this project, we have a clear understanding of each learning goal and we had fun doing it!

Technologies

React.js, React-Router, Cypress.io, Fetch, JSON
Npm libraries: scroll history, html parser

Deployment

This website was deployed to Heroku through Heroku’s automated deploy pipeline. The API was previously deployed through Heroku by Turing staff.

Rancid Tomatillos Deployment Link

Authors

Alia Peterson
Ms. Peterson

Kevin Hartmann
Kevin Hartmann Profile