About the Project
This project is a tiny, terminal-based group chat application designed for real-time communication directly within your command line interface. It leverages modern technologies to provide a lightweight and efficient chat experience.
Key Features
- Terminal-First Interface: Engage in conversations without leaving your terminal.
- Real-time Communication: Built with WebSockets for instant message delivery.
- User Management: Users can pick a name to identify themselves in the chat.
- Message Broadcasting: Messages are sent to all connected users in the group.
- Join/Leave Notifications: Receive alerts when users join or leave the chat.
- Health Check Endpoint: A simple endpoint at /health to verify server status.
- Docker Support: Includes Docker and Docker Compose configurations for easy local deployment of the server.
- Cross-Platform Compatibility: Designed to run on various operating systems where Bun is supported.
Technology Stack
- Runtime: Bun - a fast all-in-one JavaScript runtime.
- Language: TypeScript - for type safety and improved developer experience.
- Networking: WebSockets - for persistent, bidirectional communication.
- Terminal Interaction: Node.js readline module for handling user input in the terminal.
- Containerization: Docker - for creating isolated and reproducible environments.
Getting Started
To get started, clone the repository, install dependencies using Bun, and then run either the client or the server. You can also build a standalone binary for the client for easier distribution.
For detailed instructions on installation, running the client and server locally, and building the application, please refer to the project's README file.