πŸ“ Prep

How will you complete this project in the time you have?

πŸ«±πŸ½β€πŸ«²πŸΎ Setup project teams

This is a project you will build in a team. First form your team, then start the project by forking the repo.

1. Form your team

  1. Split into teams of 3 or 4. Use a random team generator.
  2. Get together with your team during class day and agree on your way of working for this project.

2. Agree your Way of working

We recommend:

  • Create a Slack channel for your team. Use this channel and your class time for communication about the project management and the product development.
  • Each team member must understand the requirements of a ticket before moving it from the Backlog to Ready. Make use of your class time to discuss the tickets as a team.
  • Decide whether you are going to work on tickets individually or as a pair. You may work faster on your own but may learn more as a pair.
  • Each feature must be reviewed by another member of your team . Set a branch protection rule on your main branch to enforce this.
  • Each team member can pick up a new ticket only when their old ticket is in review. Work on one thing at a time.

3. Set up the repo

  1. One person should fork the project repo to their own GitHub account.
  2. That person should add the other team members as collaborators to the repo.
  3. Now someone else should make a copy of the example planner and link it to your project repo.
  4. All the tickets for your project are created as issues in this repo. Batch clone the tickets into your project planner.

On your branch protection settings:

Require a pull request before merging. When this is enabled, all commits must be made to a non-protected branch and submitted via a pull request before they can be merged into a branch that matches this rule.

Require approvals: 1. When this is enabled, pull requests targeting a matching branch require a number of approvals and no changes requested before they can be merged.

Notes

Full Stack Project Assessment πŸ”—

Video Recommendation App

Background

To apply to The Launch you must show you can meaningfully contribute to a technical project. This means that you must clearly demonstrate that you can create and deploy full stack applications. If you cannot yet complete this full stack assessment, you are not ready to apply to The Launch.

Challenge

In this project, you will be building up a small application that allows you to share your favourite YouTube videos with the world. We will begin with a very small MVP (Minimal Viable Product), and build on top of it to make it nicer and more useful.

User stories πŸ‘©πŸ½β€πŸ’»

Most of the core features for this project have been captured as user story issues. You can view all the user story issues on the project planning board: User story issues. User story issues define a particular feature through a user story. They also link through to other issues you'll need to implement for this user story to be complete.

Requirements

All the requirements for this project are captured as issues that you can find on this planning board: Full Stack Assessment Planner

> [!TIP]
> Some of the issues are optional which means that you can build a working project without them. However, make something really impressive: complete as much as you can. We value excellence and so do employers.

Week 1 - Minimal Viable Product

Week 1 issues

Week 2 - Additional features

Week 2 issues

Week 3 - Finalizing project

Week 3 issues

Week 4 - Stretch goals

Use extra time this week to implement missing required and optional features from previous weeks.
Week 4 issues

Sample Solution

Here is an example solution for both frontend and backend, including all optional features:

https://cyf-fsa-solution.netlify.app/

> [!NOTE]
> You can design the website to look however you like.

Using this project for the launch project and other portfolio pieces

While you are free to use this codebase for your future projects we recommend against it. This project is set up in a way to make it easy to understand, but lacks a lot of features that would be otherwise helpful.

For launch projects and future portfolio pieces, look at the Code Your Future Starter Kit. This assessment project is a simplified version of the starter kit, with a lot of the features removed to keep it light and more understandable. In fact, some of the challenges in this project are to re-add these features yourself, like support for linting.

Since these features will already be present in the starter kit, it will be a much better starting point. And since it uses the same libraries and setup that you will learn here, you should feel immediately familiar with it.