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
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user