How rudrajeetcodes/project-orion works
Orion is a Discord slash-command bot for personal tasks and scheduled reminders. Users invoke task and reminder commands; command handlers use services to query or mutate SQLite-backed records and respond in Discord. A background worker checks due reminders every 10 seconds and sends them to the configured owner. Task statistics and reminder counts feed a dynamic status message. The graph preserves the documented command capabilities, though reminder-command details and several wiring relationships are supported only by the README or SOURCE INDEX rather than excerpts.
Main entry points: client.py Discord client · task.py Task commands · status_message_service.py Status message · reminder_worker.py Reminder worker
Components 18
Bot runtime
- Application entry
main.py - Runtime config
config.py - Discord client
bot/client.py
Task management
- Task commands
bot/commands/task.py - Task operations
services/task_service.py
Reminder delivery
- Reminder commands
bot/commands/reminder.py - Reminder operations
services/reminder_service.py - Reminder worker
workers/reminder_worker.py
Status display
- Status message
services/status_message_service.py - Status summary
services/status_service.py
Persistence
- Task records
database/models/task.py - Reminder records
database/models/reminder.py - Session factory
database/session.py - Database engine
database/engine.py
Other components
- Discord user
- Discord API
- Bot owner
- SQLite database
Connections 32
- Discord user → Discord API: invokes commands
README.md - Discord API → Task commands: routes task commands
README.md - Discord API → Reminder commands: routes reminder commands
README.md - Application entry → Discord client: starts client
main.py - Application entry → Runtime config: loads settings
main.py - Application entry → Database engine: initializes database
main.py - Discord client → Runtime config: reads guild settings
bot/client.py - Discord client → Task commands: registers commands
bot/client.py - Discord client → Reminder commands: registers commands
bot/client.py - Discord client → Status message: updates status
bot/client.py - Discord client → Reminder worker: starts worker
bot/client.py - Task commands → Session factory: opens sessions
bot/commands/task.py - Task commands → Task operations: calls task operations
bot/commands/task.py - Task commands → Status message: refreshes after changes
bot/commands/task.py - Task commands → Status summary: requests statistics
bot/commands/task.py - Task operations → Task records: queries and mutates
services/task_service.py - Reminder commands → Session factory: opens sessions
bot/commands/reminder.py - Reminder commands → Reminder operations: calls reminder operations
bot/commands/reminder.py - Reminder worker → Session factory: opens sessions
workers/reminder_worker.py - Reminder worker → Reminder operations: checks and marks due
workers/reminder_worker.py - Reminder worker → Runtime config: reads owner setting
workers/reminder_worker.py - Reminder worker → Discord API: fetches user and sends DM
workers/reminder_worker.py - Discord API → Bot owner: delivers reminder
README.md - Reminder operations → Reminder records: queries and mutates
services/reminder_service.py - Status message → Session factory: opens session
services/status_message_service.py - Status message → Status summary: builds content
services/status_message_service.py - Status message → Runtime config: reads channel settings
services/status_message_service.py - Status message → Discord API: fetches or edits message
services/status_message_service.py - Status summary → Task operations: gets task statistics
services/status_service.py - Status summary → Reminder operations: gets reminder counts
services/status_service.py - Session factory → Database engine: binds sessions
database/session.py - Database engine → SQLite database: stores records
database/engine.py