Files
MultiChatOverlay/TASKS.md

2.8 KiB

Project Task List

This file tracks all active development tasks. It is based on the official DEVELOPMENT_PLAN.md.

📋 How to Use This List

  1. Find a task in the "To Do" section that you want to work on.
  2. Add your name next to it (e.g., [ ] Task Name - @YourName).
  3. When you start, move it to "In Progress" and follow the CONTRIBUTING.md workflow.
  4. When your Pull Request is merged, move it to "Done."

🚀 Phase 1: User Authentication & Database

  • Goal: Get the basic API, database, and Twitch login flow working.

To Do

  • [ ] 1.1: Database Schema: Define SQLAlchemy models for User (id, username, platform, encrypted_tokens) and Settings.
  • [ ] 1.2: Twitch OAuth API: Create FastAPI endpoints for /login/twitch (redirect) and /auth/twitch/callback (handles token exchange).
  • [ ] 1.3: Secure Token Storage: Implement helper functions to encrypt and decrypt OAuth tokens before storing them in the database.
  • [ ] 1.4: Basic Session Management: Create a simple session/JWT system to know who is logged in.
  • [ ] 1.5: Login Frontend: Create a basic login.html file with a "Login with Twitch" button.

In Progress

  • [ ] 1.0: Project Skeleton - @ProjectLead
    • Task: Setup main.py, requirements.txt, and .gitignore.

Done

  • (Nothing yet!)

Phase 2: User Dashboard & Configuration

  • Goal: Allow logged-in users to see a dashboard, get their overlay URL, and save settings.
  • (All tasks for this phase are on hold until Phase 1 is complete)

To Do

  • [ ] 2.1: Dashboard UI: Create dashboard.html (only for logged-in users).
  • [ ] 2.2: Config API: Create API endpoints (GET, POST) for /api/settings to save/load user preferences (e.g., custom CSS).
  • [ ] 2.3: Overlay URL: Generate and display the unique overlay URL for the user (e.g., /overlay/{user_id}).

💬 Phase 3: Dynamic Listeners & Basic Overlay

  • Goal: The core magic. Start chat listeners for users and show messages in the overlay.
  • (All tasks for this phase are on hold until Phase 2 is complete)

To Do

  • [ ] 3.1: Dynamic Listener Manager (The Big One): Design a system (e.g., background service) to start/stop listener processes for users.
  • [ ] 3.2: User-Specific Broadcasting: Update the WebSocket system to use "rooms" (e.g., /ws/{user_id}) so users only get their own chat.
  • [ ] 3.3: Basic Overlay UI: Create the overlay.html page that connects to the WebSocket and displays messages.

💡 Backlog & Future Features

  • (Tasks from Phase 4, Gitea Issues, etc., will be added here as we go)
  • [ ] Implement YouTube OAuth & pytchat listener (Phase 4).
  • [ ] "Single Message Focus" feature (Issue #1).
  • [ ] Moderator panels (Issue #2).
  • [ ] Custom CSS storage & injection (Issue #6).