Files
omo-bot/docs/04_solution_strategy.md
T
zwitschi 77e43a6a38 Add initial project structure, including README, CONTRIBUTING, and documentation files
- Created .gitignore to exclude unnecessary files
- Added README.md with project description and core features
- Introduced CONTRIBUTING.md for development guidelines
- Established documentation files for architecture, quality requirements, and technical risks
2026-05-17 15:50:43 +02:00

1.9 KiB

Solution Strategy

Technology Decisions

Decision Choice Rationale
Bot framework Discord.js (Node.js) Mature library, strong type support, rich event model
Database PostgreSQL Reliable, supports JSONB for flexible user state, well-suited for mileage/role tracking
Frontend (Admin) React Team familiarity, rich ecosystem for dashboards
Hosting Coolify Easy deployment for Node.js with Nixpacks.
Auth Discord OAuth2 No custom auth needed, seamless web/bot integration

Top-Level Decomposition

The system follows a modular monolith pattern with clear separation:

  • Core Bot — command handlers, event listeners, Discord Gateway logic
  • Content Syndicator — polling adapters for YouTube/IG/TikTok, webhook dispatch
  • Event Manager — FIFO queue for stage/speaker management
  • Mileage Engine — scoring logic, persistence, state sync with web app
  • Admin API — RESTful endpoints for bot config, content scheduling, analytics

Key Quality Goals

  • Availability — Stateless bot instances scale horizontally behind load balancer
  • Consistency — Write-ahead logging for mileage transactions; periodic state reconciliation with web app
  • Extensibility — Adapter pattern for content sources: implement interface, register, deploy

Organizational Decisions

  • One-person or small-team development per project scope
  • CI/CD via Gitea Actions: lint → test → deploy
  • Feature toggles for admin dashboard rollout