How marvins095/curlschool works
CurlSchool is a hands-on curl/API challenge platform: learners send HTTP requests to complete challenges and earn points, while a live leaderboard displays progress. The sampled backend excerpt shows token lookup, challenge responses, note operations, and an SSE broadcast hub; the frontend subscribes to the leaderboard stream. Most backend behavior resides in one file, and omitted route registration limits certainty about handler wiring.
Main entry points: main.go HTTP API · App.js Leaderboard app
Components 14
Challenge platform
- HTTP API
main.go - Token lookup
main.go - Notes challenges
main.go - HTTP challenges
main.go - Challenge catalog
main.go
Progress and live board
- Challenge scoring
main.go - User progress
main.go - Leaderboard
main.go - SSE hub
main.go - Event stream
main.go
Leaderboard interface
- Leaderboard app
frontend/src/App.js
Other components
- Learner
- curl client
- Browser
Connections 15
- Learner → curl client: sends requests
- curl client → HTTP API: HTTP requests
- HTTP API → Token lookup: checks tokens
- HTTP API → Notes challenges: serves note routes
- HTTP API → HTTP challenges: serves challenges
- HTTP challenges → Challenge catalog: checks challenge
- HTTP challenges → Challenge scoring: awards flags
- Notes challenges → Challenge scoring: awards flags
- Token lookup → User progress: queries users
- Challenge scoring → User progress: updates progress
- Leaderboard → User progress: reads scores
- SSE hub → Event stream: broadcasts events
- Browser → Leaderboard app: opens interface
- Leaderboard app → Event stream: subscribes via SSE
- HTTP API → SSE hub: broadcasts updates