3.3 KiB
3.3 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
- Find a task in the "To Do" section that you want to work on.
- Add your name next to it (e.g.,
[ ] Task Name - @YourName). - When you start, move it to "In Progress" and follow the
CONTRIBUTING.mdworkflow. - 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
In Progress
Done
[✔️]1.0: Project Skeleton - @ramforth- Task: Setup
main.py,requirements.txt, and.gitignore.
- Task: Setup
[✔️]1.1: Database Schema: Define SQLAlchemy models forUser(id, username, platform, encrypted_tokens) andSettings. @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 toencryptanddecryptOAuth 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 basiclogin.htmlfile 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.0: CSS Refactor & Styling: Improve the general look and feel of the application pages.[ ]2.1: Dashboard UI: Createdashboard.html(only for logged-in users).[ ]2.2: Config API: Create API endpoints (GET,POST) for/api/settingsto 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 theoverlay.htmlpage 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 &pytchatlistener (Phase 4).[ ]"Single Message Focus" feature (Issue #1).[ ]Moderator panels (Issue #2).[ ]Custom CSS storage & injection (Issue #6).