2.9 KiB
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
python3andgitwere 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
collaboratorsand permissions to775. - 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.mdv3) 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
userstable schema was defined using SQLAlchemy. - Authentication: A placeholder Twitch OAuth2 implementation was created in
auth.py. - Login Frontend: A
login.htmlpage 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
/dashboardendpoint and a simpledashboard.htmlpage were created. - Usage Guide: A
USAGE.mdfile 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
webservice for the FastAPI application. - A
dbservice using PostgreSQL. - The use of
gunicornwithuvicornworkers for the production server. - The use of Docker volumes to allow for easy collaboration on frontend files.
- A