How vortexpluz/chirpy works
Chirpy is a small HTTP microblogging API: users register and log in, manage bearer/refresh tokens, and create, list, retrieve, or delete short posts (“chirps”); a Polka webhook can grant Chirpy Red status. The main mux dispatches requests to handlers, which use authentication helpers and SQL-backed query modules. The tree and sampled code support the API, persistence, static app serving, and webhook integration; details of unsampled handlers and middleware are limited.
Main entry points: main.go HTTP Mux · handler_users.go User Handlers · handler_tokens.go Token Handlers · handler_chirps.go Chirp Handlers
Components 19
HTTP API
- HTTP Mux
main.go - Static App
main.go - Health Endpoint
main.go - Admin Endpoints
handler_admin.go - Upgrade Webhook
handler_weebhooks.go
Identity And Access
- User Handlers
handler_users.go - Token Handlers
handler_tokens.go - Bearer And Refresh
internal/auth/tokens.go - JWT Auth
internal/auth/jwt.go - Password Hashing
internal/auth/pass.go - API Key Auth
internal/auth/api_key.go
Chirp Content
- Chirp Handlers
handler_chirps.go
Persistence
- Query Setup
internal/database/db.go - User Queries
internal/database/users.sql.go - Chirp Queries
internal/database/chirps.sql.go - Refresh Queries
internal/database/tokens.sql.go - PostgreSQL
Other components
- API Client
- Polka Service
Connections 28
- API Client → HTTP Mux: sends requests
- Polka Service → HTTP Mux: sends webhook
- HTTP Mux → Static App: serves files
- HTTP Mux → Health Endpoint: dispatches health
- HTTP Mux → User Handlers: dispatches user routes
- HTTP Mux → Token Handlers: dispatches token routes
- HTTP Mux → Chirp Handlers: dispatches chirp routes
- HTTP Mux → Upgrade Webhook: dispatches webhook
- HTTP Mux → Admin Endpoints: dispatches admin
- HTTP Mux → Query Setup: initializes queries
- User Handlers → Password Hashing: hashes passwords
- User Handlers → Bearer And Refresh: reads bearer token
- User Handlers → JWT Auth: issues and validates JWT
- User Handlers → User Queries: reads and writes users
- User Handlers → Refresh Queries: creates refresh token
- Token Handlers → Bearer And Refresh: reads bearer token
- Token Handlers → JWT Auth: issues JWT
- Token Handlers → Refresh Queries: reads and revokes tokens
- Chirp Handlers → Bearer And Refresh: reads bearer token
- Chirp Handlers → JWT Auth: validates JWT
- Chirp Handlers → Chirp Queries: reads and writes chirps
- Upgrade Webhook → API Key Auth: checks API key
- Upgrade Webhook → User Queries: upgrades user
- Admin Endpoints → User Queries: truncates users
- Query Setup → PostgreSQL: opens connection
- User Queries → PostgreSQL: executes SQL
- Chirp Queries → PostgreSQL: executes SQL
- Refresh Queries → PostgreSQL: executes SQL