Streams and categories
A stream is a top-level subject area of the catalogue; its categories are the areas inside it. Courses belong to them through their tags.GET /streams returns them in the hosted catalogue’s order:
On a course,
stream and category are the first stream (in this order) and its first category the course is tagged into. Their label is the name the hosted catalogue prints on course cards, which follows the site’s label setting: for Brahm Varchas that is the English subtitle ("Virtue | Civilisation"), not the stream’s Hindi title. Match streams by slug, never by label.
Stream pages
app/streams/[slug]/page.tsx (excerpt)
Learning paths
A learning path is an ordered sequence of courses (“A woman’s life stages”: menstruation, pregnancy, early parenting). They come from the site’s Learning Paths section; a site without one returns an empty list.GET /learning-paths lists them, optionally only those under one stream (?stream=swasthya):
GET /learning-paths/{code} returns the path with its steps in order. Each step’s course is a course summary with its hosted url:
- A step can be a course that is not published to the catalogue on its own. It is still listed, from the path’s data:
subtitle,instructorsandcreated_atare empty andavailabilityisavailable.GET /courses/{id}returns404for it; link to itsurl. - A
step_countof0means the path has no steps to show yet; hide it. - On a course page,
series(fromGET /courses/{id}) names the path the course belongs to and lists its steps, withcurrent: trueon this course: use it for a “Part 2 of 3” strip.