Skip to content

Instantly share code, notes, and snippets.

@villacoder
Last active August 12, 2021 16:11
Show Gist options
  • Save villacoder/9f980254461fa8bfbe93067db2126872 to your computer and use it in GitHub Desktop.
Save villacoder/9f980254461fa8bfbe93067db2126872 to your computer and use it in GitHub Desktop.
Wizeline Academy - 2021 React Bootcamp Project

Wizeline Academy - 2021 React Bootcamp Project

Introduction

Thank you for participating in the 2021 React Bootcamp! Here you will find the instructions to complete your project.

The purpose of this assignment is for you to demonstrate your React skills. This is your chance to show off everything you've learned during our bootcamp and earn your diploma.

The idea is that you build and deliver an entire React application on your own. We don't want to limit you by providing some "fill-in-the-blanks" exercises, but instead ask you to build it from scratch. We hope you find this project challenging and engaging.

The goal is to create a YouTube client app.

We've created a demo application: https://react-certification-2020.netlify.app/

NOTE: Use wizeline as the username and Rocks! as the password to log in

Main Functionalities

These are the main features required for the project:

  • Home View
    • Search and display a list of videos using YouTube API.
  • Video Details View
    • Display the selected video and its information.
    • Display a list of related videos.
    • Allow users to mark videos as favorites.
  • Login
    • Implement a mocked login and store the logged-in user data in a browser, it should be persistent and globally accesible from a Context.
  • Favorite Videos List
    • Display the favorite videos on a private route.
  • Favorite Video Details View
    • Display the selected favorite video and its information.
    • Display the list of other favorite videos.

NOTE: You should use the demo application just as a guide and as a trigger for your own ideas. It's not mandatory to reproduce the exact same styling nor to stick only to the main features listed above. Feel free to extend the functionalities if you want some bonus points ;)! This is YOUR project and you can be as creative as you like.

We won't share the project's source-code until the bootcamp is completed and all the participants deliver their own implementations (we don't want to bias your solution).

General Requirements

These are the main requirements we will evaluate from your deliverables:

  • Apply everything you've learned during our bootcamp:
    • Functional Components
      • React Hooks
      • Custom Hooks
    • Styled Components
    • State Management with React Context
    • React Router
      • Public and private routes
    • Fetch results from YouTube API
      • Search videos by name
      • Get related videos
    • User Authentication
    • Testing Coverage (~70%)

Try to keep the use of third party libraries to the minimum, especially the ones related to the topics covered in our bootcamp, e.g., you can use a CSS framework (such as Bootstrap) if that makes you feel more comfortable and move faster, but we will still want you to develop and deliver meaningful styled-components.

Deliverables

The project is divided into 5 mini-challenges, you will have to solve each one at the end of each module so we can evaluate what you've learned.

IMPORTANT: Each deliverable must be reported in the same PR. For example, the first and second would be sent in the same pull request

Important: Please beware that all mini-challenges must be solved in order and incrementally.

Submitting the deliverables

For submitting your work, you should follow these steps:

  1. Fill the form to submit your project
  2. Projects must be forked from the baseline repo
  3. Please make sure that your forked repo is public
  4. Submit your deliverables as a Pull Request (PR) in a new branch derived from master/main on your own GitHub account
  5. Remember to submit your deliverables on time to be successfully evaluated

Remember to always use your creativity!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment