Skip to content

Logandv3/rancid-tomatillos

Repository files navigation

Rancid Tomatillos

Rancid Tomatillos is an app that allows users to view all movies as well as specific movie details like the movie poster, budget, runtime, average rating etc.

Screen Shot 2022-09-07 at 1 50 31 PM

Deployable link

https://logandv3.github.io/rancid-tomatillos/

Group Contribution: https://future-thunder.surge.sh/

Technologies Used

  • Created with Create React App
  • Code: HTML, SCSS, JavaScript
  • TDD: Cypress
  • Compiler: Webpack
  • Linter: eslint
  • Debugging: Chrome Dev Tools
  • Version Control/Management: Git/Github/Github Projects

Original Group Project Repo

Rancid Tomatillos

Contributors

Setup

  • Fork this web app to your own Github account
  • Clone the repository to your local machine
  • cd into the file
  • run npm install.
  • Run npm start and visit localhost:3000

Learning Goals

Team Goals:

  • Gain competency with React fundamentals
  • Learn how to test React components & asynchronous JS
  • Practice refactoring
  • Create a multi-page UX using Router

Bei:

  • Understand Cypress and write comprehensive tests
  • Use Express to add microservices to the app like favorites and search.

Logan:

  • Navigate between page views without show and hide fcns
  • Use Express to allow the user to find movies and save them
  • Gain a better understanding of Cypress testing and fetch errors

Evolution of Rancid Tomatillos

We started off with a design and component architecture that we really liked. Following our diagram and wireframe we were able to build our components easily. We set up our all components as classes and we realized part way through that most should just be fcns. We decided to come back and change them later, but we ran out of time because we wanted to spend more time learning Cypress in greater depth. We initially had all of our state data in our main App component, but when we implemented Router we stored some state in our Details component to get it to work. When we tested with Cypress there was definitely a learning curve, especially with stubbing. We had plans to use Express for more functionality but we decided our time would be better spent learning and implementing better tests. There are still a few things we would like to implement but we are happy with how much we learned.

How to Use

  • When the user loads the page they will see a header with navigation links, a section where a featured movie would populate and a list of all available movies. Rancid Tomatillos- Main Page

  • If the user wants to know more details about a particular movie they can click directly on the movie they want the app will render a movie detail page.

  • The detail page has an image, rating and various other items describing the movie. When the user wishes to return to the main page they can click the back button or go back in their browser. Rancid Tomatillos -Detail Page

  • If the user wishes to log in to their account they can click the login link at the top and be taken to a login page. Rancid Tomatillos- Login Page

Wins

  • Even though this was our first React project we were able to successfully use fetch calls and error messages.
  • React made it much easier to keep our UI in sync with the scripts.
  • We were able to do more complete testing with Cypress even though it was a challenge.
  • We can now render certain components as pages instead of using hide and show functions.

Challenges

  • Cypress was hard to get used to. We specifically had a hard time with the fetch call stubbing and it took a while to figure out.
  • React Router was tricky to use for some elements.
  • React has different error types and more going on under the hood, so it was sometimes difficult to determine where a bug was happening.

Reflections

  • React makes a lot of things easier like the UI management and it can be nice for organizing data and managing state. This was a good first project and we look forward to doing more projects with React.

Future Plans

  • We would like to refactor our components so we don't have unecessary class components. Most of our component should be fcns.
  • Finish the login page so the user has more options.
  • Implement Express.js server functionality to allow the user to search, rate and save movies.
  • We would like to allow the user to view a movies trailer video on the movie detail page.
  • We would like to implement functionality allowing the user to view a sneak peek at the movie details when they hover over the movie.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published