How adarshaldkar/cms-content_management_system works
The Gazette is an editorial publishing platform: readers browse published stories, while authors create and save manuscripts, submit them for review, and editors publish or schedule approved work. The client calls a NestJS API whose domain services manage editorial, identity, media, and community features; persistence is routed through a multi-database mesh. The README also describes document ingestion, asynchronous jobs, analytics, and real-time notifications. Several of these subsystems are represented by their exact source directories because their implementation was not sampled; those links are documented or marked unverified.
Main entry points: client.ts HTTP client · App.tsx Web application · articles.controller.ts Article endpoints · workflow.service.ts Article workflow
Components 24
Client experience
- Web application
client/src/App.tsx - HTTP client
client/src/api/client.ts - Story management
client/src/pages/user/StoriesManagerPage.tsx - Article editor
client/src/pages/ArticleEditorPage.tsx - Article reading
client/src/pages/ArticleReaderPage.tsx - Publishing calendar
client/src/pages/admin/PublishingSlotsManagerPage.tsx - Authentication state
client/src/stores/authStore.ts
Editorial workflow
- Article workflow
server/src/modules/articles/workflow.service.ts - Scheduled publishing
server/src/modules/publishing-slots - Document ingestion
server/src/modules/documents/pdf-ingestion.service.ts - Media management
server/src/modules/media/media.service.ts - Embed handling
server/src/modules/embeds
Community and communications
- Social interactions
server/src/modules/comments - Messaging
server/src/modules/messages/messages.controller.ts - Newsletter
server/src/modules/newsletter - Notifications
server/src/modules/notifications/notifications.controller.ts
API and platform services
- Authentication
server/src/modules/auth/auth.service.ts - Article endpoints
server/src/modules/articles/articles.controller.ts - Background jobs
server/src/modules/jobs - Request security
server/src/common/guards/jwt-auth.guard.ts
Persistence and operations
- Article persistence
server/src/repositories/interfaces/article.repository.interface.ts - Analytics storage
server/src/database/clickhouse.service.ts - Database mesh
server/src/database/multi-database-mesh.service.ts
Other components
- Reader / author
Connections 23
- Reader / author → Web application: uses
- Web application → Story management: routes to
client/src/App.tsx - Web application → Article reading: routes to
client/src/App.tsx - Story management → HTTP client: requests stories
client/src/pages/user/StoriesManagerPage.tsx - Article editor → HTTP client: saves drafts
- Article reading → HTTP client: loads articles
- Publishing calendar → HTTP client: manages slots
client/src/pages/admin/PublishingSlotsManagerPage.tsx - HTTP client → Article endpoints: calls API
- HTTP client → Authentication: refreshes session
client/src/api/client.ts - Article endpoints → Article workflow: dispatches workflow
server/src/modules/articles/articles.controller.ts - Article workflow → Article persistence: uses repository
- Scheduled publishing → Article workflow: transitions stories
- Document ingestion → Media management: uploads images
server/src/modules/documents/pdf-ingestion.service.ts - Reader / author → Authentication state: signs in
- Authentication → Request security: issues credentials
- Messaging → Notifications: fans out updates
- Newsletter → Background jobs: queues broadcasts
- Scheduled publishing → Background jobs: schedules work
- Article endpoints → Request security: guards requests
server/src/modules/articles/articles.controller.ts - Article persistence → Database mesh: routes persistence
- Database mesh → Analytics storage: supports analytics
- Embed handling → Media management: handles rich media
- Social interactions → Database mesh: persists interactions