Skip to content

Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 3 | Project - TV - Show - Level-500 - #66

Open
SandzSoft wants to merge 45 commits into
CodeYourFuture:mainfrom
SandzSoft:main
Open

Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 3 | Project - TV - Show - Level-500#66
SandzSoft wants to merge 45 commits into
CodeYourFuture:mainfrom
SandzSoft:main

Conversation

@SandzSoft

@SandzSoft SandzSoft 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

🌐 Netlify Link

🚀 Live Project:
https://cyf-sandzsoft-tv.netlify.app/

👩‍💻👨‍💻 Contributors

This project was developed collaboratively by:

SandzSoft
Niangh-Ciang

We worked together through the different levels of the TV Show Project, including refactoring, show/episode navigation, searching, and responsive UI improvements.

Changelist

Level 500 – Show & Episode Browser
🔎 Added show search and show selection
📺 Added navigation between show and episode views
🔎 Added episode search and episode selection
🌐 Integrated the TVMaze API for shows and episodes
⚡ Added episode caching to avoid unnecessary API requests
🎬 Added detailed show cards with:
Show images
Summaries
Ratings
Genres
Status
⏳ Added loading and error handling
⬆️ Added smooth scroll-to-top when opening the episode view
🧹 Refactored state management and rendering logic
🔢 Added accurate show and episode result counts

🛠️ Technologies
HTML
CSS
JavaScript
TVMaze API
Git & GitHub
Netlify
🚀 Live Demo

👉 View the TV Show Project

SandzSoft and others added 30 commits July 30, 2026 01:32
Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 1 | TV Show Project
Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 1 | Project TV Show
Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 1 | Add performance improvements for Level 100
Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 1 | Enhance TV show page design
Move search input event listener into function setup()
Refactor setup by creating separate functions for search and selector
Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 2 | Refactor episode rendering and event handling
Glasgow | 26-ITP-May | Sandani Kannangara | Sprint 2 | Level 300: Fetch episodes from TVMaze API
@SandzSoft SandzSoft added Needs Review Trainee to add when requesting review. PRs without this label will not be reviewed. 📅 Sprint 3 Assigned during Sprint 3 of this module labels 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.

  • Appropriate use of some semantic HTML elements
  • The deployed page has all the required functionality
  • The code is generally well organised, but I have some suggestions if you see my comments

I notice you are creating a lot of HTML elements for cards in the js, are there any alternatives you can think of, or can you suggest advantages for your current approach?

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
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>TV Show Project | My Name (My GitHub username)</title>
<title>TV Show Project | Sandani Kannangara (SandzSoft)</title>
<link rel="preconnect" href="https://api.tvmaze.com" crossorigin />

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 idea to add a preconnect

Comment thread script.js
"input",
handleEpisodeSearch,
);
elements.episodeSelect.addEventListener("change", handleEpisodeSelection);

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.

Thinking about the order of events here, is it necessary for these addEventListeners to come inside the block of code that happens when the fetch is being done?

Comment thread script.js
switchToEpisodesView();
state.selectedShow = Number(showId);

if (state.cachedEpisodes[state.selectedShow]) {

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 approach taken here works, but see how there's a lot of repetition in the structure? That could be an indicator that it could be reorganised a bit. Think also about task-specific functions. You're responding the fetch activity here in a function about changing the apps state. Could these functions be reorganised at all?

Comment thread script.js

const img = document.createElement("img");
img.src = image?.medium || "";
img.alt = `${name} episode image`;

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

const summaryElement = document.createElement("div");
summaryElement.classList.add("summary");
summaryElement.innerHTML = summary || "No summary available.";

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?

@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