Movie Project

Overview

Working with APIs to make our websites interactive sits at the core of frontend web development. At the end, frontend websites work as interfaces that give us the ability to interace with data. All this data is coming from some form of an API.

The API you will be interacting with is a movie API that can be used to retreive information about movies and actors. It is quite extensive and serves many purposes for your needs. In addition to that, it has quite a versatile searching mechanism that gives you the ability to reach for the information you need.

How to make use of this WIKI?

As you can see, the only thing you received from us is a bunch of .md (Markdown) files like the one you're reading now. We want you to learn to build your own projects from scratch and see how the process is done. So, we have created the following things in the wiki to help you out with the preparation:

  1. Setup - This page contains the steps you need to setup the project. Only one of you will do it, while the others watch and support them
  2. Requirements - This page contains the requirements that you need to do for the project.
  3. Presentation - This page contains the requirements that you need to do when presenting.
  4. Score guide - We're introducing a new score system. This page contains the breakdown of the score.

To make the best use of this Wiki, go first to the requirements, understand them, then go to the score guide, understand it, then finally head to the setup page so you can do the setup with everything in mind.

Key takeaways 🎉

If you finish this project you can be absolutely sure that you can work on any project in the future. Generally, you will be able to use the same tools and techniques you used here to build any website in the future.

Things you will practice while working on this project

You will be able to practice:

  • Dividing tasks as components between the team and avoiding most conflict issues.
  • Using states and setters to change the state of the component.
  • Using props to pass data from one component to another.
  • Using static-site generation and server-side rendering to fetch data and add them to pages.
  • Preparing folder structure in a way that makes your, and everyone elses work easier.
  • Adding new dependencies and how to use them.
  • Reading the documentation of the packages you use.
  • Reading the documentation of APIs and how to understand them.
  • Using Authentication tokens in your
  • Using routes to navigate between pages.
  • Using local storage to store information.
  • Using UI Kits to make styling components easier.

Concerns to avoid

The following thoughts are traps; steer away from them:

  • This project is huge! I don't think I'm going to be able to do it. From your previous experiences, you know for a fact that everything starts big in the beginning but when you plan things and work on them they usually are not as big and scary as you thought.
  • I don't know how to use [insert tool here] how am I going to deal with all of this? Again, don't worry. You have dealt with so many unknown things and just like you learned how to use them, you will be able to learn how to use any tool you want as long as you check its documentation.
  • [Right from the beginning] How am I going to fix the bonus topic? DON'T GO THERE UNLESS YOU FINISH THE MAIN REQUIREMENTS FIRST!
  • [After spending hours on an issue to fix it without reading the documentation or searching the issue on google] I will spend extra hours on this until I fix it This is a trap. You should always read the documentation and search for the solution.
  • I'm so tired now!!!😩 I've been trying to fix this bug for 3 hours!!! In times like these, consider steping away from your computer and doing something else like playing with your pet, watching something funny, looking outside your window and enjoying cool air.

Confidence boosters

In times of doubts remember these:

  • This project will be a huge addition to my already big list of projects that will increase my future prospects of getting hired
  • The internet is FULL of resources that any one can use to learn about anything.
  • I've worked on 3 projects. They seemed difficult in the beginning but I still aced them. I'm awesome!
  • 3 months ago, my biggest issues and worries are how to write the correct class name to change an HTML element's color. Now, I'm dealing with bigger things because I've learned so much more. My current worries and issues will be my HTML and CSS of my future.
  • I'm not alone on this team. There are 2 more people who got my back.