Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
blank_issues_enabled: false
blank_issues_enabled: true
contact_links:
- name: CYF
url: contact@codeyourfuture.io
Expand Down
59 changes: 5 additions & 54 deletions .github/ISSUE_TEMPLATE/pd-assignment.yml
Original file line number Diff line number Diff line change
@@ -1,59 +1,10 @@
name: PD Coursework
description: Assign a piece of PD coursework
title: "[PD] <title>"
labels: [PD, 🏝 Priority Stretch, 🐇 Size Small]
name: Coursework Review
description: For a volunteer to review a coursework project
title: "[Review] <title>"
labels: []
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to assign this coursework!
- type: input
attributes:
label: Coursework content
validations:
required: true
- type: input
attributes:
label: Estimated time in hours
description: (PD has max 4 per week total)
validations:
required: true
- type: textarea
attributes:
label: What is the purpose of this assignment?
description: Clearly explain the purpose of this assignment and how trainees can evaluate this.
label: Any problems you want to discuss, or something you want to highlight was done well
validations:
required: true
- type: textarea
attributes:
label: How to submit
description: State in clear steps how a trainee can submit this assignment.
placeholder: |
Copy the Google doc to your own Google Drive
Complete the work assigned
When you are ready, move your document to your class Drive
validations:
required: true
- type: textarea
attributes:
label: Anything else?
description: |
Links? References? Anything that will give more context

Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
- type: markdown
attributes:
value: |
**Thank you so much.**

Please now complete this ticket by filling in the options on the sidebar.

1. Update labels
- priority -- is this coursework key, mandatory, or stretch?
- size -- help trainees plan their time with rough estimation
2. Add to project backlog
- add to the project named the same as this repo
- fill in custom fields -- priority, size, hours, week -- to match this issue

Once your ticket is complete, you may like to check it out on the example project board attached to this repo.
This is so you understand how trainees will use your work.
80 changes: 0 additions & 80 deletions .github/ISSUE_TEMPLATE/tech-ed-assignment.yml

This file was deleted.

51 changes: 51 additions & 0 deletions levels/Reviewers-All-Requirements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
There are the main requirements that a submitted project needs checked by reviewers.
Trainees should **not** need to refer to this document, and should focus on completing each level one at a time.

1. It is deployed on GitHub pages
1. The site must fetch data from an API at `TVMaze.com`, **not** a JSON file
1. The page should state somewhere that the data has (originally) come from [TVMaze.com](https://tvmaze.com/), and link back to that site.
1. During a visit to the website it should never fetch any URL more than once.
1. The site should indicate when data is loading.
1. If an error occurred loading the data, notify the user on the page (not only in the console)
1. Listing Shows - When the site starts, present a listing of all shows ("shows listing")
1. For each show, display at least:
1. name
1. image
1. summary
1. genres
1. status
1. rating
1. runtime
1. When a show name is clicked, it should:
1. Fetch and present episodes from that show
1. Hide the "shows listing" view
1. Enable episode search / select (see below)
1. Have a navigation link or button to enable the user to return to the "shows listing"
1. When this is clicked, the episodes listing should be hidden
1. Ensure that the search and selector controls still work correctly when you switch from shows listing to episodes listing and back
1. Listing Episodes - When a show is selected, all episodes must be on the page shown for that given show, with at least:
1. The name of the episode
1. The combined season number and episode number into a zero-padded episode code: `S02E07` is correct, `S2E7` is incorrect.
1. The medium-sized image for the episode
1. The summary text of the episode
1. Select Shows - a `select` element to your page so the user can choose a show.
1. When the user first loads the page, use the `fetch`ed list of available shows, and add an entry to the drop-down per show.
1. When a user selects a show, display the episodes for that show after `fetch`ing the episode list.
1. The select must list shows in alphabetical order, case-insensitive.
1. Select Episodes - a `select` drop-down which lets the user jump quickly to a particular episode:
1. The select options are updated whenever a new show is selected, and this select isn't used otherwise
1. The select input should list all episodes in the format: "S01E01 - Episode Title"
1. When the user makes a selection, they should be taken directly to that episode on the page
1. Search Shows - When a user types a search term into the search box:
1. Only shows whose summary **OR** name contains the search term should be displayed
1. The search should be case-**in**sensitive
1. The display should update **immediately** after each keystroke changes the input
1. Display how many shows match the current search
1. If the search box is cleared, **all** shows should be shown
1. Search Episodes - When a user types a search term into the search box:
1. Only episodes whose summary **OR** name contains the search term should be displayed
1. The search should be case-**in**sensitive
1. The display should update **immediately** after each keystroke changes the input
1. Display how many episodes match the current search
1. If the search box is cleared, **all** episodes should be shown

28 changes: 27 additions & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ One of the most powerful things a software engineer can do is take some data and

The aim of this project is to take some data someone else has (and exposes over an API), and display it to users. The data we're using for this project is about episodes of TV shows.

This project will take you multiple weeks to complete. As always, we will break down the project into levels we can deliver incrementally. You must finish each milestone before you start working on the next one (but it's ok to know what the future levels are going to be - it may help you design things). Your goal is to complete all of the levels up to and including level 500 during the Data Flows module.
This project will take you multiple weeks to complete. As always, we will break down the project into levels we can deliver incrementally. You must finish each milestone before you start working on the next one (but it's OK to know what the future levels are going to be - it may help you design things). Your goal is to complete all of the levels up to and including level 500 during the Data Flows module.

## Goals

Expand Down Expand Up @@ -85,3 +85,29 @@ After that, you're going to swap codebases with someone else. You should complet
You are allowed to change anything in your partner's code to make it easier to understand or build on, but they must understand and accept your changes.

Remember, finish each level before you move on to the next. Reach out for help when you're stuck.

## Submission
When you are ready to submit this task, you will submit it in a different way to normal.
You will **not** use PRs.
Instead, you will deploy your TV project website to GitHub pages and reviewers will assess, check the code, and leave issues for you to fix.

When you have finished level 500:
1. Go to the CYF Portal and fill out the submission step for the TV Project. Include a link to the deployed page, your repository, and the branch you used for level 500.
2. A reviewer will check your project and leave issues on your repository.
3. Resolve the issues, and use the issue comments to check that the reviewer is happy the problems are resolved.
4. The reviewer will close the issues when they are fixed.
4. Once all issues raised are fixed and closed, your TV project is submitted and complete.

### Instructions for Reviewers
**Requirements**
If this is your first review of the TV show project, familiarise yourself with the task requirements.
For your convenience, you can find a list of all the requirements [here](levels/Reviewers-All-Requirements.md).
There are no rules about how the site should look, only how it behaves.

**How to review**
Submission is not done via a PR, instead any problems you find should be raised as issues in the repository.
Given there may be multiple problems, grouping them into issues by related themes may be easiest, so use your own judgement.
The trainee will deal with the issues and should check in replying to these issues.
Check any changes made, and if all problems are resolved, you can close the issue.
You may wish to double-check your notification settings to make sure you are notified for any replies or activity on these issues.
When all the issues you opened are closed, the task is considered complete.