How samcreviston/rpglorehold works
This is a planning scaffold for an RPG content publishing and campaign-management platform, not a complete implementation: the README explicitly says business logic is absent. Its intended user journey spans discovering reference content and published modules, creating or publishing modules, and organizing them into campaigns for play. The graph shows documented product areas and the server’s explicit route-to-controller structure; frontend-to-backend and several service-to-provider connections are indicative of the scaffold’s architecture, not verified runtime behavior in the sampled source.
Main entry points: server.ts API application · AppRoutes.tsx Page routing · ModuleCreatorPage.tsx Creator pages · ModuleEditor.tsx Module editor
Components 29
Client experience
- Page routing
client/src/routes/AppRoutes.tsx - Search pages
client/src/pages/SearchPage.tsx - Creator pages
client/src/pages/ModuleCreatorPage.tsx - Campaign pages
client/src/pages/DmHomePage.tsx - Search client
client/src/api/search.ts - Module client
client/src/api/modules.ts - Campaign client
client/src/api/campaigns.ts
Creation and play
- Module editor
client/src/components/creator/ModuleEditor.tsx - AI generation
client/src/components/creator/AIContentGenerator.tsx - 5e reference
client/src/components/content/ContentManagerTool.tsx - Session manager
client/src/components/campaign/SessionManagerPanel.tsx
Backend API
- API application
server/src/server.ts - Search routes
server/src/routes/searchRoutes.ts - Module routes
server/src/routes/moduleRoutes.ts - Campaign routes
server/src/routes/campaignRoutes.ts - AI routes
server/src/routes/aiRoutes.ts - Search controller
server/src/controllers/searchController.ts - Module controller
server/src/controllers/moduleController.ts
Domain services
- Search service
server/src/services/searchService.ts - Module service
server/src/services/moduleService.ts - AI generation service
server/src/services/aiGenerationService.ts - Campaign service
server/src/services/campaignService.ts - Authentication service
server/src/services/authService.ts
Data and providers
- Domain models
server/src/models/Module.ts - MongoDB
server/src/config/db.ts - Meilisearch
server/src/config/meilisearch.ts
Other components
- Platform user
- OpenAI
- Open5e
Connections 31
- Platform user → Page routing: opens pages
- Page routing → Search pages: routes to
- Page routing → Creator pages: routes to
- Page routing → Campaign pages: routes to
- Search pages → Search client: requests search
- Creator pages → Module editor: edits modules
- Module editor → Module client: saves module
- Module editor → AI generation: uses generation
- Creator pages → 5e reference: browses reference
- Campaign pages → Session manager: manages sessions
- Session manager → Campaign client: loads campaigns
- Search client → Search routes: HTTP request
- Module client → Module routes: HTTP request
- Campaign client → Campaign routes: HTTP request
- API application → Search routes: mounts routes
- API application → Module routes: mounts routes
- API application → Campaign routes: mounts routes
- API application → AI routes: mounts routes
- Search routes → Search controller: dispatches
- Search controller → Search service: queries
- Search service → Meilisearch: searches indexes
- Search service → Domain models: search documents
- Module routes → Module controller: dispatches
- Module controller → Module service: module operations
- Module controller → Authentication service: tracks ownership
- Module service → Domain models: reads and writes
- Campaign routes → Campaign service: campaign operations
- AI routes → AI generation service: generation requests
- AI generation service → OpenAI: generates content
- 5e reference → Open5e: searches reference
- Domain models → MongoDB: persists data