# Chatrooms A collection of chatting rooms built with WebSocket technology. ## Overview This project consists of a WebSocket server and web frontend for real-time chat functionality. The server implements a custom WebSocket protocol, and the frontend provides a simple web interface for connecting to chat rooms. ## Project Structure ``` chatrooms/ ├── server/ # WebSocket server implementation │ └── src/ │ ├── net/ # Network layer and WebSocket implementation │ └── index.ts # Server entry point ├── frontend/web/ # Web frontend │ └── src/ │ ├── main.ts # Frontend WebSocket client │ └── style.css # Styles └── package.json # Root workspace configuration ``` ## Architecture - **Server**: Node.js TypeScript server with custom WebSocket implementation - **Frontend**: Vanilla TypeScript web client using Vite for development - **Workspace**: Managed as npm workspaces for monorepo development ## Prerequisites - Node.js (version specified in `.nvmrc`) - npm ## Installation ```bash npm install ``` ## Development ### Start the server ```bash npm run dev:server ``` The server will start on port 3000. ### Start the web frontend ```bash npm run dev:web ``` ### Linting ```bash # Lint server code npm run lint:server # Lint and fix server code npm run lint:fix:server ``` ## Features - Custom WebSocket server implementation - Real-time bidirectional communication - Connection management with keep-alive - TypeScript throughout the stack - Development tools with hot reload ## Author Alexander Zinn ## License ISC