Files
MultiChatOverlay/PROGRESS_REPORT.md
2025-11-13 17:25:09 +01:00

2.9 KiB

Project Progress Report

This document summarizes the key steps and decisions made during the initial setup and planning of the MultiChat Overlay project.

1. Initial Setup & Environment Assessment

  • Environment Assessed: The initial container environment was assessed, and python3 and git were confirmed to be installed.
  • Project Directory: The project directory was created at /home/joe/MultiChatOverlay.
  • Collaboration: The directory permissions were configured to allow for collaboration by setting the group to collaborators and permissions to 775.
  • Git Repository: The project was cloned from the Gitea repository at https://gitea.ramforth.net/ramforth/MultiChatOverlay.

2. Initial Development (Single-User Model)

  • Virtual Environment: A Python virtual environment was created at /home/joe/MultiChatOverlay/venv.
  • Dependencies: Initial Python dependencies (fastapi, uvicorn, websockets, pytchat, twitchio) were installed.
  • Basic Framework: A basic FastAPI application was created with a WebSocket endpoint and a simple HTML overlay.
  • Chat Listeners: Placeholder chat listener modules were created for YouTube and Twitch.

3. Pivot to a Multi-User Service

  • New Requirement: The project direction was updated to create a multi-user, web-based service where users can log in with their streaming accounts.
  • Revised Development Plan: A new development plan (DEVELOPMENT_PLAN.md v3) was created to reflect this change. The new plan focuses on user authentication, a database, and dynamic management of chat listeners.
  • Plan Synced: The revised development plan was pushed to the Gitea repository.

4. Implementation of the Multi-User Framework

  • Database: A SQLite database was initialized, and a users table schema was defined using SQLAlchemy.
  • Authentication: A placeholder Twitch OAuth2 implementation was created in auth.py.
  • Login Frontend: A login.html page and a corresponding FastAPI endpoint were created.
  • Session Management: Basic session management using signed cookies was implemented to keep users logged in.
  • Dashboard: A protected /dashboard endpoint and a simple dashboard.html page were created.
  • Usage Guide: A USAGE.md file was created to document the login process for end-users.
  • Code Synced: All changes for the initial multi-user framework were pushed to the Gitea repository.

5. Pivot to a Production-Ready Docker-Based Framework

  • New Requirement: The need for a more robust, scalable, and easily accessible framework was identified.
  • Revised Plan: A new plan was created to use Docker Compose to manage the application services.
  • Docker Compose Plan:
    • A web service for the FastAPI application.
    • A db service using PostgreSQL.
    • The use of gunicorn with uvicorn workers for the production server.
    • The use of Docker volumes to allow for easy collaboration on frontend files.