## 1. Backend Setup & OSC Bridge

- [x] 1.1 Initialize Node.js project and install dependencies (`express`, `node-osc`, `socket.io`, `systeminformation`).
- [x] 1.2 Implement the OSC Client to send messages to `localhost:9999`.
- [x] 1.3 Create WebSocket handlers for real-time vertex and surface manipulation events.
- [x] 1.4 Add API endpoints for `ofxPiMapper` process management (start/stop/restart).

## 2. Media & System API

- [x] 2.1 Implement the Media Manager API for listing, uploading, and deleting files in `/home/pi/media`.
- [x] 2.2 Create the System Monitor API to poll and return CPU, RAM, and Temperature data.
- [x] 2.3 Implement the OSC `/source/set` endpoint for remote media assignment.

## 3. Frontend Scaffolding & Virtual Canvas

- [x] 3.1 Scaffold React/Vite project with Tailwind CSS.
- [x] 3.2 Implement the "Virtual Canvas" component using HTML5 Canvas or SVG to represent the projection area.
- [x] 3.3 Add interactive surface manipulation (Quad/Triangle) with touch/drag support.
- [x] 3.4 Integrate Socket.io client to pipe vertex movements to the backend in real-time.

## 4. Networking & Headless Config

- [x] 4.1 Create shell scripts for toggling between Access Point and Client Mode.
- [x] 4.2 Implement the Networking UI in React for WiFi scanning and connection management.
- [x] 4.3 Configure `avahi-daemon` to provide `mpvj.local` mDNS access.

## 5. Integration & Deployment

- [x] 5.1 Create a `systemd` service for the MPVJ backend to ensure it starts on boot.
- [x] 5.2 Build the React frontend and configure Express to serve static files.
- [x] 5.3 Conduct end-to-end testing of mapping, media assignment, and WiFi switching.
