How thamesblanq/blog-backend works
This is a NestJS REST API for a blog platform. Clients register or log in, then use JWT-protected endpoints to manage users, posts, and comments; post endpoints also support image uploads to Cloudinary. MongoDB-backed services persist the principal domain records. Comments are implemented in the tree despite being described as planned in the README. The graph follows sampled controller and service calls; strategy, schema, and module internals were not sampled, so uncertain wiring is omitted.
Main entry points: posts.controller.ts Posts controller · auth.service.ts Auth service · users.controller.ts Users controller · jwt-auth.guard.ts JWT guard
Components 20
API endpoints
- Auth controller
src/auth/auth.controller.ts - Users controller
src/users/users.controller.ts - Posts controller
src/posts/posts.controller.ts - Comments controller
src/comment/comment.controller.ts
Identity and access
- Auth service
src/auth/auth.service.ts - JWT guard
src/auth/jwt-auth.guard.ts - JWT strategy
src/auth/jwt.strategy.ts - Local strategy
src/auth/localstrategy.ts - Roles guard
src/roles/roles.guard.ts - Role metadata
src/roles/roles.decorator.ts
Blog content
- Users service
src/users/users.service.ts - Posts service
src/posts/posts.service.ts - Comments service
src/comment/comment.service.ts
Persistence and media
- User schema
src/schemas/user.schema.ts - Post schema
src/schemas/post.schema.ts - Comment schema
src/schemas/comment.schema.ts - MongoDB
- Cloudinary service
config/cloudinary.service.ts - Cloudinary
Other components
- API client
Connections 28
- API client → Auth controller: registers or logs in
- Auth controller → Auth service: delegates auth
- Auth controller → Local strategy: guards login
- Local strategy → Auth service: validates credentials
- Auth service → Users service: looks up or creates
- Auth service → JWT strategy: issues JWT
- API client → Users controller: requests profile
- API client → Posts controller: requests posts
- API client → Comments controller: requests comments
- Users controller → JWT guard: protects routes
- Posts controller → JWT guard: protects routes
- Comments controller → JWT guard: protects routes
- Users controller → Roles guard: checks role
- Posts controller → Roles guard: checks role
- Roles guard → Role metadata: reads role metadata
- JWT guard → JWT strategy: validates token
- Users controller → Users service: delegates user operations
- Auth service → Users service: reads or creates user
- Posts controller → Posts service: delegates post operations
- Comments controller → Comments service: delegates comment operations
- Users service → User schema: queries and saves
- Posts service → Post schema: queries and saves
- Comments service → Comment schema: queries and saves
- User schema → MongoDB: persists users
- Post schema → MongoDB: persists posts
- Comment schema → MongoDB: persists comments
- Posts controller → Cloudinary service: uploads image
- Cloudinary service → Cloudinary: stores image