TV Show Project Level 200: Swap Codebases
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- javascript
- Domain
- frontend
Research direction
Start by cloning the partner's Project-TV-Show repository and reviewing its level 100 implementation before making refactoring changes. Then implement the live episode search and episode selector described in the issue, and verify that matching counts, case-insensitive filtering, clearing the search, and selecting an episode all work before opening a pull request for partner review.
Written by the indexing model from the issue text.
Description
Level 200
For level 200, you are not allowed to work on the same codebase as you worked on for level 100.
Swap repos with a random person in your class. You may find it helpful to do this first step together:
- Go to your copy of
Project-TV-Showand click on the setting - Go to the "collaborators" section
- Next "manage access", click "add people"
- Type the username your partner
- Click the green add button
- Visit the URL for your partner's project and accept the invitation to collaborate / check your email for the invite link
- Clone your partner's repository to your laptop, you will need to give it a different name, such as
Project-TV-Show-THEIR_NAME
Now, work individually to complete level 200:
Look at their level 100 implementation.
Compare their implementation to yours. Think:
- How is it different?
- What do you prefer about your implementation?
- What do you prefer about their implementation?
- What did you learn that you didn't know before?
They should do the same with your repository.
Have a discussion about your answers to these questions. In class, together you should give talk for 5 minutes about your conclusions. (Do this in small groups - we don't want to take all day).
Refactoring
Before implementing new features, take some time to change the codebase you're going to build level 200 in. Change anything you think will make it easier to add more features.
Some example ideas that you may want to think about:
- Could any variables or functions have more clear names, to help you understand what they do?
- Would extracting functions help make some code easier to understand?
Work in a new branch on your partner's repo, making any changes you think are useful.
Then make a pull request to your partner's main branch (take care not to PR to the CYF main branch yet).
Have them review, and when happy, merge your PR.


Adding new functionality
Level 200 is all about being able to filter episodes.
Search
Add a live search input which meets the following requirements:
When a user types a search term into the search box:
- Only episodes whose summary OR name contains the search term should be displayed
- The search should be case-insensitive
- The display should update immediately after each keystroke changes the input
- Display how many episodes match the current search
- If the search box is cleared, all episodes should be shown
Send a pull request to your partner's repo with this functionality. Have them review, and when happy, merge your PR.
Screenshot of minimal version
Note: Provided your project meets the above requirements, it can look however you want.
Here is one example layout.

Episode selector
Add a select drop-down which lets the user jump quickly to a particular episode, with the following requirements:
- The select input should list all episodes in the format: "S01E01 - Winter is Coming"
- When the user makes a selection, they should be taken directly to that episode in the list
- Bonus: if you prefer, when the select is used, ONLY show the selected episode. If you do this, be sure to provide a way for the user to see all episodes again.
Send a pull request to your partner's repo with this functionality. Have them review, and when happy, merge your PR.
Screenshot of minimal version
Note: Provided your project meets the above requirements, it can look however you want.
Here is one example layout.

- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 276
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from CodeYourFuture/Module-Data-Flows
-
🏕 Priority Mandatory 📅 Sprint 3 Core Module-Data-Flows Submit:None 🦔 Size Tiny
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
🏕 Priority Mandatory 🐇 Size Small 📅 Sprint 2 Core Module-Data-Flows Submit:None
Difficulty 1/5 Under an hour Newbie friendliness 72/100
-
🏕 Priority Mandatory 🐂 Size Medium 📅 Sprint 3 Core Module-Data-Flows Submit:None
Difficulty 2/5 1-3 hours Newbie friendliness 35/100
-
🏕 Priority Mandatory 🐂 Size Medium 📅 Sprint 2 Core Module-Data-Flows Submit:None
Difficulty 2/5 1-3 hours Newbie friendliness 35/100
-
🏕 Priority Mandatory 🐂 Size Medium 📅 Sprint 1 Core Module-Data-Flows Submit:None
Difficulty 1/5 1-3 hours Newbie friendliness 35/100
All issues in CodeYourFuture/Module-Data-Flows
Similar issues
-
ai-observability bug team/ai-observability
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
AllTheMods/ATM-10-L#19 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
SignalK/n2k-signalk#345 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
JuliaPluto/PlutoPlotly.jl#72 ·