Enhance contributing guidelines in CONTRIBUTING.md with a readable link, update curriculum JSON structure to include chapter tiers, and improve catalog chapter card display with tier badges. Update package.json for testing scripts and add contributing URL in zola.toml. Refactor frontend components and styles for better integration of new features.

This commit is contained in:
Hananoshika Yomaru 2026-05-19 05:34:25 -07:00
parent 8c986c1ed7
commit 81b316e08d
33 changed files with 6944 additions and 152 deletions

View file

@ -1,9 +1,13 @@
export type CatalogChapterTier = "foundation" | "non-foundation";
export type CatalogChapter = {
slug: string;
title: string;
description: string;
status: "live" | "planned";
curriculums: string[];
/** DSE compulsory tier; omit = foundation. */
tier?: CatalogChapterTier;
};
export type CatalogStrand = {

View file

@ -1,13 +1,46 @@
{
"title": "Mathematics",
"subtitle": "Secondary level (S4–S6)",
"intro": "Structured around three core strands. Chapters marked as available can be read now; others are on the roadmap.",
"subtitle": "HKDSE Compulsory Part (S4–S6)",
"intro": "Topic units across three strands. The map shows required prerequisites; the list follows a readable teaching order.",
"graph": {
"edges": [
{ "from": "quadratic-equations", "to": "sequences" },
{ "from": "directed-numbers-rates", "to": "polynomials-expansion-factorisation" },
{ "from": "polynomials-expansion-factorisation", "to": "algebraic-fractions-formulas" },
{ "from": "polynomials-expansion-factorisation", "to": "linear-equations-two-unknowns" },
{ "from": "linear-equations-two-unknowns", "to": "linear-inequalities-one-unknown" },
{ "from": "polynomials-expansion-factorisation", "to": "laws-of-indices" },
{ "from": "laws-of-indices", "to": "quadratic-equations" },
{ "from": "polynomials-expansion-factorisation", "to": "factor-remainder-theorems" },
{ "from": "quadratic-equations", "to": "factor-remainder-theorems" },
{ "from": "quadratic-equations", "to": "complex-numbers" },
{ "from": "quadratic-equations", "to": "functions-graphs" },
{ "from": "sequences", "to": "linear-programming" },
{ "from": "functions-graphs", "to": "linear-programming" }
{ "from": "quadratic-equations", "to": "sequences-series" },
{ "from": "functions-graphs", "to": "exponential-logarithmic" },
{ "from": "functions-graphs", "to": "variations" },
{ "from": "functions-graphs", "to": "sequences-series" },
{ "from": "functions-graphs", "to": "linear-programming" },
{ "from": "sequences-series", "to": "linear-programming" },
{ "from": "polynomials-expansion-factorisation", "to": "coordinate-geometry-foundations" },
{ "from": "quadratic-equations", "to": "coordinate-circles" },
{ "from": "functions-graphs", "to": "advanced-trigonometry" },
{ "from": "coordinate-geometry-foundations", "to": "deductive-geometry" },
{ "from": "coordinate-geometry-foundations", "to": "coordinate-circles" },
{ "from": "deductive-geometry", "to": "congruence-similarity" },
{ "from": "congruence-similarity", "to": "pythagoras-theorem" },
{ "from": "pythagoras-theorem", "to": "introduction-trigonometry" },
{ "from": "introduction-trigonometry", "to": "mensuration-3d" },
{ "from": "introduction-trigonometry", "to": "advanced-trigonometry" },
{ "from": "coordinate-circles", "to": "circle-properties" },
{ "from": "deductive-geometry", "to": "circle-properties" },
{ "from": "coordinate-circles", "to": "loci" },
{ "from": "circle-properties", "to": "loci" },
{ "from": "statistical-charts-averages", "to": "measures-dispersion" },
{ "from": "statistical-charts-averages", "to": "basic-probability" },
{ "from": "basic-probability", "to": "permutations-combinations-probability" },
{ "from": "measures-dispersion", "to": "normal-distribution-z-scores" },
{ "from": "measures-dispersion", "to": "statistical-literacy" },
{ "from": "basic-probability", "to": "statistical-literacy" },
{ "from": "permutations-combinations-probability", "to": "statistical-literacy" }
]
},
"strands": [
@ -15,6 +48,48 @@
"id": "number-algebra",
"title": "Number & Algebra",
"chapters": [
{
"slug": "directed-numbers-rates",
"title": "Directed numbers, rates & ratios",
"description": "Operate with negative numbers and solve ratio, rate, and proportion problems in context.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "polynomials-expansion-factorisation",
"title": "Polynomials: expansion & factorisation",
"description": "Expand products, collect like terms, and factorise expressions using common factors and identities.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "algebraic-fractions-formulas",
"title": "Algebraic fractions & formulas",
"description": "Simplify algebraic fractions and change the subject of formulas in applied contexts.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "linear-equations-two-unknowns",
"title": "Linear equations in two unknowns",
"description": "Solve simultaneous linear equations by substitution, elimination, and graphical interpretation.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "linear-inequalities-one-unknown",
"title": "Linear inequalities in one unknown",
"description": "Solve and represent linear inequalities on the number line and in word problems.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "laws-of-indices",
"title": "Laws of indices",
"description": "Apply index laws to simplify expressions with integer and rational exponents.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "quadratic-equations",
"title": "Quadratic equations",
@ -23,11 +98,20 @@
"curriculums": ["DSE"]
},
{
"slug": "sequences",
"title": "Sequences & series",
"description": "Work with arithmetic and geometric sequences, sigma notation, and simple convergence ideas.",
"slug": "factor-remainder-theorems",
"title": "Factor & remainder theorems",
"description": "Use the factor and remainder theorems to factorise higher-degree polynomials and solve related equations.",
"status": "planned",
"curriculums": ["DSE"]
"curriculums": ["DSE"],
"tier": "non-foundation"
},
{
"slug": "complex-numbers",
"title": "Complex numbers",
"description": "Represent complex numbers in Cartesian form and perform operations including conjugates and division.",
"status": "planned",
"curriculums": ["DSE"],
"tier": "non-foundation"
},
{
"slug": "functions-graphs",
@ -36,12 +120,35 @@
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "exponential-logarithmic",
"title": "Exponential & logarithmic functions",
"description": "Explore laws of logarithms, exponential growth and decay, and sketch related graphs.",
"status": "planned",
"curriculums": ["DSE"],
"tier": "non-foundation"
},
{
"slug": "sequences-series",
"title": "Sequences & series",
"description": "Work with arithmetic and geometric sequences, sigma notation, and finite summation formulas.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "variations",
"title": "Variations",
"description": "Model direct, inverse, joint, and partial variation and solve combined variation problems.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "linear-programming",
"title": "Linear programming",
"description": "Graph linear inequalities, identify feasible regions, and optimise objective functions in two variables.",
"status": "planned",
"curriculums": ["DSE"]
"curriculums": ["DSE"],
"tier": "non-foundation"
}
]
},
@ -50,32 +157,77 @@
"title": "Measures, Shape & Space",
"chapters": [
{
"slug": "trigonometry",
"title": "Advanced trigonometry",
"description": "Use radians, identities, and laws of sines and cosines to solve triangles and model periodic phenomena.",
"slug": "coordinate-geometry-foundations",
"title": "Coordinate geometry foundations",
"description": "Plot points, find distances and midpoints, and work with slopes of lines in the Cartesian plane.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "coordinate-geometry",
"slug": "deductive-geometry",
"title": "Deductive geometry",
"description": "Prove angle and side relationships for intersecting lines, triangles, and polygons.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "congruence-similarity",
"title": "Congruence & similarity",
"description": "Apply congruence and similarity criteria to justify properties of triangles and scale figures.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "pythagoras-theorem",
"title": "Pythagoras' theorem",
"description": "Use Pythagoras' theorem and its converse in 2D problems and coordinate settings.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "introduction-trigonometry",
"title": "Introduction to trigonometry",
"description": "Define sine, cosine, and tangent ratios and solve right-angled triangle problems.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "mensuration-3d",
"title": "Mensuration in 3D",
"description": "Find volumes and surface areas of prisms, cylinders, pyramids, cones, and spheres.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "coordinate-circles",
"title": "Coordinate geometry of circles",
"description": "Find equations of circles, tangents, and intersections using coordinate methods and distance.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "advanced-trigonometry",
"title": "Advanced trigonometry",
"description": "Use sine and cosine rules, radians, and trigonometric graphs in 2D and 3D applications.",
"status": "planned",
"curriculums": ["DSE"],
"tier": "non-foundation"
},
{
"slug": "circle-properties",
"title": "Properties of circles",
"description": "Apply chord, tangent, and angle theorems in circles to prove results and solve geometry problems.",
"status": "planned",
"curriculums": ["DSE"]
"curriculums": ["DSE"],
"tier": "non-foundation"
},
{
"slug": "loci",
"title": "Loci",
"description": "Describe and construct loci in the plane, linking geometric constraints to algebraic equations.",
"status": "planned",
"curriculums": ["DSE"]
"curriculums": ["DSE"],
"tier": "non-foundation"
}
]
},
@ -84,25 +236,41 @@
"title": "Data Handling",
"chapters": [
{
"slug": "dispersion",
"slug": "statistical-charts-averages",
"title": "Charts & averages",
"description": "Organise data with tables and charts and calculate mean, median, and mode.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "measures-dispersion",
"title": "Measures of dispersion",
"description": "Interpret range, interquartile range, variance, and standard deviation for comparing data sets.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "probability",
"title": "Permutations, combinations & probability",
"description": "Count outcomes with permutations and combinations, then compute probabilities in finite sample spaces.",
"slug": "basic-probability",
"title": "Basic probability",
"description": "Calculate theoretical and experimental probabilities for simple events and complements.",
"status": "planned",
"curriculums": ["DSE"]
},
{
"slug": "normal-distribution",
"slug": "permutations-combinations-probability",
"title": "Permutations, combinations & probability",
"description": "Count outcomes with permutations and combinations, then compute probabilities in finite sample spaces.",
"status": "planned",
"curriculums": ["DSE"],
"tier": "non-foundation"
},
{
"slug": "normal-distribution-z-scores",
"title": "Normal distribution & z-scores",
"description": "Model continuous data with the normal curve, standardise with z-scores, and read probabilities from tables.",
"status": "planned",
"curriculums": ["DSE"]
"curriculums": ["DSE"],
"tier": "non-foundation"
},
{
"slug": "statistical-literacy",