freeCodeCamp / freeCodeCamp/curriculum-db

Add human-readable name fields to Chapter and Module types

Open
#48 0 comments 0 reactions 1 assignee Claimed by @ojeytonwilliams View on GitHub
Dominant language
TypeScript
Stars
5
Forks
9
PR merge metrics
No merged PRs in 30d

Description

## Summary

Chapters and Modules (v9 curriculum structures) only expose `dashedName` via API. They need human-readable `name` fields for consistency with other primitives.

## Current State

| Primitive | Human-readable name |
|-----------|---------------------|
| Superblock | ✅ `name` (PR #39) |
| Block | ✅ `name` |
| Challenge | ✅ `title` |
| Chapter | ❌ only `dashedName` |
| Module | ❌ only `dashedName` |

## Expected Transformation
```
dashedName: "html" → name: "HTML"
dashedName: "basic-html" → name: "Basic HTML"
dashedName: "html-forms-and-tables" → name: "HTML Forms And Tables"
```

## Implementation Checklist

Follow the Superblock pattern from PR #39:

- [ ] Add optional `name` to `RawChapter` and `RawModule` interfaces
- [ ] Add required `name` to `ChapterData` and `ModuleData` interfaces
- [ ] Update `normalizeChapter()` and `normalizeModule()` to generate names via `dashedNameToTitle()`
- [ ] Add `name: String!` to GraphQL `Chapter` and `Module` types
- [ ] Regenerate types

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.