# Chat App A real-time chat application with modern features including chat rooms, direct messaging, image sharing, message reactions, and user presence tracking. ![Chat App Main Interface](screenshots/main-interface.png) ## Features - **Authentication** - Secure login and registration - **Real-time Messaging** - Instant message delivery - **Chat Rooms** - Create, join, and manage chat rooms - **Media Sharing** - Share images in conversations - **Message Reactions** - React to messages with emojis - **Message Status** - See when messages are delivered and read - **Typing Indicators** - Know when someone is typing - **User Presence** - See who's online in real-time - **Profile Management** - Update profile information and avatar - **Theme Support** - Light, dark, and system theme options - **Responsive Design** - Works on desktop and mobile devices ## Technology Stack ### Frontend - React with TypeScript - Vite for building and development - Tailwind CSS for styling - Radix UI components - Socket.IO client for real-time communication - React Query for data fetching - Zustand for state management ### Backend - Node.js with Express - TypeScript - Socket.IO for real-time communication - Prisma ORM - PostgreSQL database - JWT authentication ### DevOps - Docker for containerization - Gitea CI/CD pipeline for deployment - Nginx for serving the frontend and routing API requests ## Installation ### Prerequisites - Node.js (v20+) - npm or yarn - PostgreSQL database - Docker and Docker Compose (for containerized deployment) ### Local Development Setup 1. Clone the repository: ```bash git clone https://github.com/yourusername/chat-app.git cd chat-app