freeCodeCamp / freeCodeCamp/curriculum-db
Add human-readable name fields to Chapter and Module types
- 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
Assessment
This issue has not been assessed yet.