How ltsgror/ror_blog works
RoR Blog is a localized Rails community-blog application. Readers browse and search verified posts; members create posts, discuss them, react, and manage revisions; administrators moderate posts, revisions, and users. The principal publishing workflow runs from post submission or update through background AI review and human review to verified publication. Other documented capabilities include accounts, chat, full-text search, and scheduled suspension cleanup. The graph uses the sampled controllers for concrete calls; some additional product branches are included from routes and README documentation, with uncertain internal wiring omitted.
Main entry points: moderate_post_job.rb AI moderation job · post.rb Posts · controllers/posts_controller.rb Post workflows · admin/posts_controller.rb Admin post review
Components 23
Web workflows
- Post workflows
app/controllers/posts_controller.rb - Admin post review
app/controllers/admin/posts_controller.rb - Revision review
app/controllers/admin/post_revisions_controller.rb - Accounts and profiles
app/controllers/users_controller.rb - Comments and reactions
app/controllers/comments_controller.rb - Chat
app/controllers/chat_controller.rb
Content domain
- Posts
app/models/post.rb - Post revisions
app/models/post_revision.rb - Users
app/models/user.rb - Comments and reactions
app/models/comment.rb - Chat history
app/models/chat_history.rb - Moderation settings
app/models/moderation_setting.rb
Background services
- Post search
app/jobs/post_search_index_job.rb - Post embeddings
app/jobs/index_post_embeddings_job.rb - AI moderation job
app/jobs/moderate_post_job.rb - AI moderation client
app/services/ai_moderation/client.rb - AI generation
app/services/ai_generation/service.rb - Suspension cleanup
app/jobs/clear_expired_suspensions_job.rb
External systems
- PostgreSQL
- Elasticsearch
- Sidekiq and Redis
- AI providers
Other components
- Visitor or member
Connections 35
- Visitor or member → Post workflows: browses or submits
- Visitor or member → Admin post review: moderates posts
- Visitor or member → Revision review: reviews revisions
- Visitor or member → Accounts and profiles: manages account
- Visitor or member → Comments and reactions: discusses and reacts
- Visitor or member → Chat: chats
- Post workflows → Posts: reads and updates
- Post workflows → AI moderation job: enqueues review
- Admin post review → Posts: queries and updates
- Admin post review → AI moderation job: enqueues rerun
- Revision review → Post revisions: approves or rejects
- Accounts and profiles → Users: reads and updates
- Comments and reactions → Comments and reactions: creates and reads
- Chat → Chat history: reads and writes
- Chat → AI generation: requests generation
- Posts → PostgreSQL: persists
- Post revisions → PostgreSQL: persists
- Users → PostgreSQL: persists
- Comments and reactions → PostgreSQL: persists
- Chat history → PostgreSQL: persists
- Moderation settings → PostgreSQL: persists
- Posts → Post search: indexes asynchronously
- Post search → Elasticsearch: indexes posts
- Posts → Post embeddings: indexes asynchronously
- Post embeddings → PostgreSQL: stores vectors
- AI moderation job → Posts: loads and updates
- AI moderation job → Moderation settings: reads configuration
- AI moderation job → AI moderation client: requests review
- AI moderation client → AI providers: sends review request
- AI generation → AI providers: requests generation
- AI moderation job → Sidekiq and Redis: runs as job
- Post search → Sidekiq and Redis: runs as job
- Post embeddings → Sidekiq and Redis: runs as job
- Suspension cleanup → Users: clears expired suspensions
- Suspension cleanup → Sidekiq and Redis: runs as job