Files
MultiChatOverlay/TASKS.md

3.4 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

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
  • [✔️] 1.2: Twitch OAuth API: Create FastAPI endpoints for /login/twitch (redirect) and /auth/twitch/callback (handles token exchange). @ramforth
  • [✔️] 1.3: Secure Token Storage: Implement helper functions to encrypt and decrypt OAuth tokens before storing them in the database. @ramforth
  • [✔️] 1.4: Basic Session Management: Create a simple session/JWT system to know who is logged in. @ramforth
  • [✔️] 1.5: Login Frontend: Create a basic login.html file with a "Login with Twitch" button. @ramforth

Phase 2: User Dashboard & Configuration

  • Goal: Allow logged-in users to see a dashboard, get their overlay URL, and save settings. Now that Phase 1 is done, these tasks are ready to be worked on.

To Do

  • [ ] 2.4: Create Logo and Favicon: The project should have a logo and a favicon.

Done

  • [✔️] 2.0: CSS Refactor & Styling: Improved the general look and feel of the application pages, including a light/dark theme switcher.
  • [✔️] 2.1: Dashboard UI: Created dashboard.html for logged-in users to manage settings.
  • [✔️] 2.2: Config API: Created API endpoints for /api/settings to save user preferences.
  • [✔️] 2.3: Overlay URL: Generated and displayed the unique overlay URL for the user on the dashboard.
  • [✔️] 2.5: Custom CSS Themes: Implemented a system for users to create, preview, and delete their own private CSS overlay themes.

💬 Phase 3: Real-time Chat & 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

  • [ ] Implement YouTube OAuth & pytchat listener (Phase 4).
  • [ ] "Single Message Focus" feature (Issue #1).
  • [ ] Moderator panels (Issue #2).