CodeChat is an open-source platform that lets developers chat, share code, run snippets, and collaborate in real time — all in one place. Designed for coding interviews, pair programming, and learning together.
- MongoDB – NoSQL database for storing chat data and user info
- Express.js – Backend framework for API and server-side logic
- Next.js – React framework for building the frontend with SSR & routing
- Node.js – JavaScript runtime powering the backend
- Clerk (Optional) – Advanced authentication, user profiles, and management
- JWT & bcryptjs – Secure token-based authentication and password hashing
- Socket.IO – WebSocket-based real-time messaging
💬 Real-Time Chat Instant messaging with live user presence indicators |
🔐 Secure Authentication Sign up, log in, and manage sessions with JWT or Clerk integration |
🛡 Role-Based Access Control Assign different roles and permissions for better management |
💻 Collaborative Code Editor Edit and share code in real-time with syntax highlighting |
📂 Shared Scratchpads & Snippets Save, organize, and share reusable code snippets |
🎯 Live Interview Mode Built-in timer, problem prompts, and private interviewer notes |
📎 File Sharing & Code Preview Upload files and preview supported code formats directly in chat |
⚡ In-Chat Code Execution Run and test code instantly using integrated APIs |
👤 Profile Management Customize avatar, bio, and personal information |
🌍 Open Source Free to use, improve, and contribute to the community |
![]() |
![]() |
![]() |
---|---|---|
🏠 Landing Page | 📝 Sign-Up & Authentication | 💬 Real-Time Chat Interface |
Follow these steps to set up CodeChat on your local machine.
Step | Action | Command / Details |
---|---|---|
1 | Install Prerequisites | - Node.js v18+ - MongoDB (local or MongoDB Atlas) - Cloudinary Account - (Optional) Clerk account for authentication |
2 | Clone Repository | bash<br>git clone https://github.com/ThePlator/NPMChat<br>cd NPMChat<br> |
3 | Setup Backend | bash<br>cd backend<br>npm install<br> |
Configure Environment | Create .env file in backend/ with: env<br>MONGODB_URI=your_mongodb_connection_string<br>JWT_SECRET=your_jwt_secret<br>CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name<br>CLOUDINARY_API_KEY=your_cloudinary_api_key<br>CLOUDINARY_API_SECRET=your_cloudinary_api_secret<br> |
|
Run Backend | bash<br>npm run dev<br> Backend runs at http://localhost:8080 |
|
4 | Setup Frontend | bash<br>cd ../frontend<br>npm install<br> |
Configure Environment | Create .env.local in frontend/ with: env<br>NEXT_PUBLIC_API_URL=http://localhost:8080<br> |
|
Run Frontend | bash<br>npm run dev<br> Frontend runs at http://localhost:3000 |
|
5 | Done! 🎉 | You now have CodeChat running locally with both frontend & backend active. |
Contributions are welcome! Please open issues or pull requests for new features, bug fixes, or improvements.
ISC