Files
MultiChatOverlay/TASKS.md

3.2 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."

If you want to use emojis for visibility, here's some I have used: ✔️ - Done | 🧑‍🔧 - In progress | ↗️ - Task evolved (should correspond with an edit in the DEVELOPMENT_PLAN.md


🚀 Phase 1: User Authentication & Database

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

To Do

  • [ ] 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.2: Twitch OAuth API: Create FastAPI endpoints for /login/twitch (redirect) and /auth/twitch/callback (handles token exchange). @ramforth

Done

  • [✔️] 1.0: Project Skeleton - @ramforth
    • Task: Setup main.py, requirements.txt, and .gitignore.
  • [✔️] 1.1: Database Schema: Define SQLAlchemy models for User (id, username, platform, encrypted_tokens) and Settings. @ramforth
  • [✔️] 1.1.5: Discord Overview: Create an automated 'TASK-LIST' and post to Discord whenever someone pushes a change to the repository. @ramforth

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).