Files

28 lines
2.4 KiB
Markdown

# VDM Project To-Do List
This document tracks major functional, operational, and architectural improvements for the VDM server. Unlike `roadmap.md`, this list is focused on engineering and deployment tasks rather than user-facing gameplay features.
---
## 1. Production-Ready Web Server & SSL
**Goal:** Move beyond the development server and `mkcert` to a proper, secure production setup.
- **[ ] Reverse Proxy:** Deploy the application behind a production-grade reverse proxy like **Nginx** or **Caddy**. This is the standard for web applications, providing better performance, security, and stability than running Uvicorn directly exposed to the internet.
- **[ ] Proper SSL:** Use the reverse proxy to manage SSL certificates automatically with **Let's Encrypt**. This will provide a real, trusted certificate for any domain the application is hosted on, removing the need for `mkcert`.
- **[ ] Process Management:** Use a process manager like **Gunicorn** to run the FastAPI application, allowing for multiple worker processes and better resource management.
---
## 2. Docker Support
**Goal:** Containerize the entire application for easy, reproducible, and isolated deployments.
- **[ ] Create a `Dockerfile`:** Define the environment for the VDM server, including the Python version, dependency installation from `requirements.txt`, and the command to run the server.
- **[ ] Create a `docker-compose.yml`:** Write a Compose file to make it trivial to start the entire application stack (the VDM server and potentially its databases) with a single `docker-compose up` command. This dramatically simplifies setup for new developers and production environments.
## 3. Modern Frontend Framework Migration
**Goal:** Rebuild the frontend using a modern JavaScript framework to improve scalability, maintainability, and the developer experience.
- **[ ] Choose a Framework:** Evaluate and select a framework. **React** (with Vite for the build tool) is a strong contender due to its vast ecosystem and component-based architecture, which is a perfect fit for our UI.
- **[ ] Component-Based Refactoring:** Break down the existing HTML and JavaScript into reusable components (e.g., `ChatLog`, `PlayerList`, `MessageInput`).
- **[ ] State Management:** Replace the current manual state object with a dedicated state management library like **Zustand** or **Redux Toolkit** for a more robust and predictable UI.