Skip to content

Commit 84248bc

Browse files
committed
docs: less is more, AI doesnt know that
1 parent ebcb8ad commit 84248bc

File tree

1 file changed

+0
-128
lines changed

1 file changed

+0
-128
lines changed

README.md

Lines changed: 0 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,6 @@
22

33
A TypeScript GraphQL API server for freeCodeCamp curriculum metadata, built as a pnpm monorepo with Turbo. Provides structured access to curriculum data including superblocks, blocks, challenges, and certifications.
44

5-
## Features
6-
7-
- **GraphQL API**: Modern, type-safe GraphQL schema for curriculum data
8-
- **Metadata-Only**: Efficient in-memory storage of curriculum structure (<50MB)
9-
- **Monorepo Architecture**: pnpm workspaces with Turbo orchestration
10-
- **Type Safety**: Strict TypeScript with zero `any` types
11-
- **Future-Ready**: Designed for seamless database integration
12-
- **Health Monitoring**: Built-in health checks and metrics
13-
145
## Quick Start
156

167
```bash
@@ -20,122 +11,3 @@ pnpm install
2011
# Start development server (hot reload)
2112
pnpm develop
2213
```
23-
24-
## Development
25-
26-
### Prerequisites
27-
28-
- Node.js 18+ (uses ESM)
29-
- pnpm 8+
30-
31-
### Available Commands
32-
33-
#### Root Commands (Monorepo)
34-
```bash
35-
# Install dependencies
36-
pnpm install
37-
38-
# Development server (hot reload)
39-
pnpm develop
40-
41-
# Build all packages
42-
pnpm build
43-
44-
# Type checking
45-
pnpm type-check
46-
47-
# Linting
48-
pnpm lint
49-
50-
# Code formatting
51-
pnpm format
52-
53-
# Check formatting
54-
pnpm format:check
55-
56-
# Generate GraphQL types
57-
pnpm codegen
58-
59-
# Watch mode for GraphQL codegen
60-
pnpm codegen:watch
61-
62-
# Run tests
63-
pnpm test
64-
65-
# Run tests in watch mode
66-
pnpm test:watch
67-
68-
# Run tests with UI
69-
pnpm test:ui
70-
71-
# Performance testing
72-
pnpm test:perf
73-
74-
# Run tests with coverage
75-
pnpm test:coverage
76-
```
77-
78-
### Project Structure
79-
80-
```
81-
curriculum-db/
82-
├── data/ # Curriculum data (copied from main repo)
83-
│ └── structure/
84-
│ ├── curriculum.json
85-
│ ├── superblocks/ # 37 superblock JSON files
86-
│ └── blocks/ # 737 block JSON files
87-
├── packages/
88-
│ └── server/ # GraphQL API server
89-
│ ├── src/
90-
│ │ ├── data/ # Data loading and types
91-
│ │ ├── schema/ # GraphQL schema and resolvers
92-
│ │ └── utils/ # Utilities and helpers
93-
│ └── package.json
94-
├── docs/ # Documentation
95-
├── CLAUDE.md # AI development guide
96-
└── tsconfig.base.json # Shared TypeScript config
97-
```
98-
99-
### GraphQL Playground
100-
101-
Once running, visit the GraphQL playground at:
102-
- **Local**: http://localhost:4000/graphql
103-
- **Health Check**: http://localhost:4000/health
104-
105-
### Data Scale
106-
107-
- **37 superblocks** across learning paths
108-
- **737 blocks** containing modules
109-
- **32+ certifications** for completion
110-
- **~36,000 challenges** total (metadata only in MVP)
111-
112-
## Architecture
113-
114-
### Design Principles
115-
116-
- **Metadata vs Content**: Separates curriculum structure (always in-memory) from challenge content (future database)
117-
- **Data Provider Abstraction**: Clean interface allowing different storage backends
118-
- **Type Safety**: Three-layer type system (Raw JSON → Normalized Internal → Generated GraphQL)
119-
- **Memory Efficient**: <50MB memory usage for full curriculum metadata
120-
121-
### Tech Stack
122-
123-
- **GraphQL Yoga**: Modern GraphQL server
124-
- **TypeScript**: Strict type safety with all flags enabled
125-
- **Turbo**: Monorepo task orchestration
126-
- **pnpm**: Efficient package management
127-
- **ESLint + Prettier**: Code quality and formatting
128-
129-
## Contributing
130-
131-
1. Fork the repository
132-
2. Create a feature branch
133-
3. Make your changes
134-
4. Run tests: `pnpm test`
135-
5. Check types: `pnpm type-check`
136-
6. Format code: `pnpm format`
137-
7. Submit a pull request
138-
139-
## License
140-
141-
BSD-3-Clause

0 commit comments

Comments
 (0)