Skip to content

Commit 1730844

Browse files
Add fun facts section and verify series 8 data fix
- Add 30 curated Taskmaster fun facts in funfacts.json - Show a random fun fact on each Dashboard page load - Confirm all 20 series have correct contestant assignments - Series 8 now properly appears in season-by-season stats Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 1e5c43b commit 1730844

3 files changed

Lines changed: 48 additions & 2 deletions

File tree

client/public/data/funfacts.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
[
2+
"Mel Giedroyc (Series 4) is the only contestant to win the same prize twice — Ray's shampoo bag.",
3+
"The Taskmaster house is actually a former groundskeeper's cottage on a golf course in Chiswick, west London.",
4+
"Alex Horne never intended to be the Taskmaster himself — he always wanted to be on the ground with contestants.",
5+
"Bob Mortimer (Series 5) filmed some tasks in November and others in May — flowers had bloomed between shoots.",
6+
"Mel Giedroyc completed all her tasks in roughly a single week — one of the fastest filming stints ever.",
7+
"The show was originally a live stage show at the Edinburgh Festival Fringe before becoming a TV series.",
8+
"Greg Davies' golden head bust that winners receive is made of resin and weighs about 2kg.",
9+
"There's a task involving popping an entire roll of bubble wrap that has been tried in Series 1, 2, and 3 — but never aired because it made terrible TV.",
10+
"Frank Skinner agreed to do Series 1, which Alex Horne credits as a major stamp of approval that helped recruit future contestants.",
11+
"The Taskmaster crew is surprisingly small — only about 15–20 people work behind the scenes.",
12+
"Alex Horne comes up with the majority of tasks himself, though the small crew pitches in ideas too.",
13+
"Contestants are kept in a tiny green room between tasks — described as 'fundamentally rock 'n' roll' with a jar of sweets and a fridge.",
14+
"Each series, the Taskmaster house is redecorated with a different theme inspired by a specific artist.",
15+
"The studio tasks are always tested beforehand, but location tasks are almost never tried out before filming.",
16+
"Romesh Ranganathan nearly choked on a watermelon on the very first day of filming Series 1.",
17+
"Ed Gamble (Series 9 winner) is the only contestant who went on to co-host the Taskmaster podcast.",
18+
"Jo Brand (Series 9) famously chose a caravan holiday for the entire cast as the final prize — nobody wanted it.",
19+
"James Acaster (Series 7) scored the lowest ever points in a single episode with just 2 points.",
20+
"Lee Mack (Series 11) won 7 out of 10 episodes — the highest episode win rate in show history at the time.",
21+
"The show moved from Dave to Channel 4 starting with Series 10.",
22+
"Bob Mortimer's Fuji 9 segment and 'Do we need em?' became one of the most beloved moments in Taskmaster history.",
23+
"There have been over 45 international versions of Taskmaster, including in Norway, Sweden, and New Zealand.",
24+
"The Taskmaster house garden has been the site of over 500 individual task attempts across all series.",
25+
"Liza Tarbuck (Series 6 winner) was known for her creative lateral thinking, often finding loopholes in tasks.",
26+
"Rhod Gilbert (Series 7) holds the record for the most heated arguments with the Taskmaster Greg Davies.",
27+
"The iconic 'Your time starts now' phrase was inspired by Alex Horne's love of countdown-based games.",
28+
"Paul Sinha (Series 8) is also a professional quizzer known as 'The Sinnerman' on The Chase.",
29+
"Noel Fielding (Series 4 winner) brought his signature surreal art style to many creative tasks.",
30+
"Sarah Kendall (Series 11 winner) was the first Australian contestant on the show.",
31+
"The Taskmaster New Year's specials feature returning champions competing against each other."
32+
]

client/src/components/Dashboard.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useState, useEffect } from "react";
2-
import { fetchContestants, fetchAnalysis } from "../hooks/useData";
2+
import { fetchContestants, fetchAnalysis, fetchFunFacts } from "../hooks/useData";
33

44
interface TaskStat { attempted: number; won: number; winPct: number; ppt: number }
55
interface Contestant {
@@ -111,12 +111,14 @@ function computeShowStats(contestants: Contestant[]) {
111111
export default function Dashboard() {
112112
const [analysis, setAnalysis] = useState<Analysis | null>(null);
113113
const [contestants, setContestants] = useState<Contestant[]>([]);
114+
const [funFact, setFunFact] = useState<string>("");
114115
const [loading, setLoading] = useState(true);
115116

116117
useEffect(() => {
117-
Promise.all([fetchAnalysis(), fetchContestants()]).then(([a, c]) => {
118+
Promise.all([fetchAnalysis(), fetchContestants(), fetchFunFacts()]).then(([a, c, facts]) => {
118119
setAnalysis(a);
119120
setContestants(c);
121+
setFunFact(facts[Math.floor(Math.random() * facts.length)]);
120122
setLoading(false);
121123
});
122124
}, []);
@@ -157,6 +159,13 @@ export default function Dashboard() {
157159
</div>
158160
</div>
159161

162+
{funFact && (
163+
<div className="card" style={{ background: "linear-gradient(135deg, #1a1a2e 0%, #16213e 100%)", border: "1px solid #334155" }}>
164+
<h2>💡 Fun Fact</h2>
165+
<p style={{ fontSize: "1.1rem", lineHeight: 1.6, margin: 0, color: "#e2e8f0" }}>{funFact}</p>
166+
</div>
167+
)}
168+
160169
<div className="insight-grid">
161170
<div className="card">
162171
<h2>Winners vs Non-Winners</h2>

client/src/hooks/useData.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,8 @@ export async function fetchAnalysis() {
1919
const res = await fetch(`${DATA_BASE}/analysis.json`);
2020
return res.json();
2121
}
22+
23+
export async function fetchFunFacts(): Promise<string[]> {
24+
const res = await fetch(`${DATA_BASE}/funfacts.json`);
25+
return res.json();
26+
}

0 commit comments

Comments
 (0)