How lujakob/nestjs-realworld-example-app works
This NestJS application implements the RealWorld API: clients authenticate or register, then use article, comment, favorite, profile/follow, and tag endpoints. Controllers delegate domain work to services, which use TypeORM repositories backed by MySQL. JWT authentication and Swagger API documentation are documented capabilities. The README describes Prisma as an alternate branch; this tree and sampled source support the TypeORM runtime map. Service internals are sampled unevenly, so only evidenced service-to-service and persistence links are shown.
Main entry points: article.service.ts Article service · app.module.ts Application module · profile.service.ts Profile service · user.entity.ts User entity
Components 18
API and auth
- Nest runtime
src/main.ts - Application module
src/app.module.ts - JWT middleware
src/user/auth.middleware.ts - User API
src/user/user.controller.ts - Swagger docs
src/main.ts
Article content
- Article API
src/article/article.controller.ts - Article service
src/article/article.service.ts - Articles and comments
src/article/article.entity.ts - Comment entity
src/article/comment.entity.ts - Tag API
src/tag/tag.controller.ts - Tag service
src/tag/tag.service.ts
Users and social
- Profile API
src/profile/profile.controller.ts - Profile service
src/profile/profile.service.ts - Follow entity
src/profile/follows.entity.ts - User service
src/user/user.service.ts - User entity
src/user/user.entity.ts
Persistence
- MySQL database
Other components
- API client
Connections 26
- API client → User API: sends requests
- API client → Article API: sends requests
- API client → Profile API: sends requests
- API client → Tag API: sends requests
- Nest runtime → Application module: creates app
- Nest runtime → Swagger docs: serves docs
- Application module → Article service: registers feature
- Application module → User service: registers feature
- Application module → Profile service: registers feature
- Application module → Tag service: registers feature
- User API → User service: delegates
- Article API → Article service: delegates
- Profile API → Profile service: delegates
- Tag API → Tag service: delegates
- Article service → User entity: queries and saves
- Article service → Follow entity: reads follows
- Article service → Articles and comments: queries and saves
- Article service → Comment entity: queries and saves
- Profile service → User entity: queries users
- Profile service → Follow entity: queries and saves
- User service → User entity: queries and saves
- Articles and comments → MySQL database: persists through TypeORM
- Comment entity → MySQL database: persists through TypeORM
- User entity → MySQL database: persists through TypeORM
- Follow entity → MySQL database: persists through TypeORM
- JWT middleware → API client: validates JWTs