Skip to content

Glasgow | 26-ITP-May | Niangh Ciang | Sprint 3 | Project-TV-Show Level 500 - #65

Open
Niangh-Ciang wants to merge 44 commits into
CodeYourFuture:mainfrom
Niangh-Ciang:level-500-refactor
Open

Glasgow | 26-ITP-May | Niangh Ciang | Sprint 3 | Project-TV-Show Level 500#65
Niangh-Ciang wants to merge 44 commits into
CodeYourFuture:mainfrom
Niangh-Ciang:level-500-refactor

Conversation

@Niangh-Ciang

@Niangh-Ciang Niangh-Ciang commented Aug 15, 2026

Copy link
Copy Markdown

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with REGION | COHORT_NAME | FIRST_NAME LAST_NAME | SPRINT NUM | PROJECT NAME
  • I have tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

Completed all Level 500 requirements.

I added a front‑page shows listing, implemented click‑to‑open show navigation, updated the show selection UI, added free‑text show search, ensured episode search and selector work across view switches, and cached episodes to avoid repeated fetches.

##Deployed site on Netlify
https://cyf-niangh-ciang-tv.netlify.app/

This project was completed together with my partner, SandzSoft.

Niangh-Ciang and others added 30 commits July 30, 2026 19:33
Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 2 | Refactor episode rendering into reusable function
Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 2 | Add live episode search
Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 2 | feat: add episode dropdown selector
Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 2 | Refactor episode dropdown selector
remove episodes.js and switch to TVMaze API
Make a separate function for filteredEpisodes
Glasgow | 26-ITP-May | Sandani Kannangara | sprint 3 | Add dynamic show and episode selection
@Niangh-Ciang Niangh-Ciang added 📅 Sprint 3 Assigned during Sprint 3 of this module Needs Review Trainee to add when requesting review. PRs without this label will not be reviewed. labels Aug 15, 2026
@Niangh-Ciang Niangh-Ciang changed the title Level 500 refactor Glasgow | 26-ITP-May | Niangh Ciang | Sprint 3 | Level 500 Aug 15, 2026
@Niangh-Ciang Niangh-Ciang changed the title Glasgow | 26-ITP-May | Niangh Ciang | Sprint 3 | Level 500 Glasgow | 26-ITP-May | Niangh Ciang | Sprint 3 | Project-TV-Show Level 500 Aug 15, 2026

@LonMcGregor LonMcGregor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Good use of caching
  • The code is organised Ok, but I have suggestions in some comments
  • The deployed page has all the necessary functionality
  • You have used some semantic HTML

Throughout your app's lifecycle you manually handle the styling to hide/show things element by element. Can you think of any other ways of doing this that would reduce the amount of styling done in the js?

Good work on this. ITP is complete now, but if you want an extra challenge, feel free to respond to my comments.

Comment thread index.html
placeholder="Enter genre or keyword..."
/>
<label id="genre-count">Found 0 shows</label>
<select id="genre-show-select"></select>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this select menu properly labelled? Does the lighthouse tool have any suggestions?

Comment thread script.js

const elements = {};

function setup() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The setup function is very long. Is there a way it could be split up into more task specific functions?

Comment thread script.js

const img = document.createElement("img");
img.src = image?.medium || "";
img.alt = name;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this an appropriate use of an alt tag? See what https://axesslab.com/alt-texts/ has to say

Comment thread script.js
body.className = "episode-body";

const summaryP = document.createElement("p");
summaryP.innerHTML = summary;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't wrong, but can you think of any potential side effects of inserting the summary from the API directly into your HTML like this?

Comment thread script.js
});
}

function updateGenreShowOptions(shows) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

be careful of the naming choices you make. What does it mean by "genre shows" in the function name here?

Comment thread script.js

const term = elements.genreSearch.value.trim();

if (term !== "") {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remember when we were discussing about simplifying code. Is this if block the simplest it needs to be?

@LonMcGregor LonMcGregor added Reviewed Volunteer to add when completing a review with trainee action still to take. and removed Needs Review Trainee to add when requesting review. PRs without this label will not be reviewed. labels Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Reviewed Volunteer to add when completing a review with trainee action still to take. 📅 Sprint 3 Assigned during Sprint 3 of this module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants