A real-time chat web application that allows users to join chat rooms, send messages, upvote messages, and dynamically prioritize important conversations based on upvotes.
- ✅ Users can join a chat room and send messages in real-time
- ✅ Upvote chat messages to highlight important discussions
- ✅ Medium priority section for messages with more than 10 upvotes
- ✅ High priority section for messages with more than 15 upvotes
- ✅ Admin alerts triggered for high-priority messages
-
💻 Frontend: React.js (TypeScript)
-
🌐 Backend: Node.js with TypeScript
-
🔗 Real-time Communication: WebSocket
Make sure you have Node.js (v18 or higher) installed on your machine.
Frontend
-
Open a terminal and navigate to the
frontendfolder:cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
The frontend will start on http://localhost:5173
Backend
-
Open a new terminal and navigate to the
serverfolder:cd server -
Install dependencies:
npm install
-
Start the backend server:
npm run dev
-
The backend will start on http://localhost:3000
Make sure you have Docker and Docker Compose installed.
-
In the root of the project (where
docker-compose.yamlis located), build and start the containers:docker-compose up --build
-
Access the app:
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
