69 lines
3.6 KiB
Markdown
69 lines
3.6 KiB
Markdown
# 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](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.
|
|
* `[✔️]` **2.6: CSS Help Page:** Created a guide for users on how to write custom CSS for their overlays.
|
|
|
|
---
|
|
|
|
## 💬 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
|
|
|
|
---
|
|
### Done
|
|
* `[✔️]` **3.1: Dynamic Listener Manager:** Designed and implemented a system to start/stop listener processes for users on application startup/shutdown.
|
|
* `[✔️]` **3.2: User-Specific Broadcasting:** Implemented a WebSocket manager and endpoint (`/ws/{user_id}`) to broadcast messages to the correct user's overlay.
|
|
* `[✔️]` **3.3: Basic Overlay UI:** Created dynamic overlay templates that connect to the WebSocket and display incoming chat messages.
|
|
|
|
## 💡 Backlog & Future Features
|
|
|
|
* `[ ]` Implement YouTube OAuth & `pytchat` listener (Phase 4).
|
|
* `[ ]` "Single Message Focus" feature (Issue #1).
|
|
* `[ ]` Moderator panels (Issue #2). |