A full stack chat application which lets you chat real-time privately with others and has features such as media upload and saved chat history. Also has custom profile options such as choosing your preferred theme across the app or choosing your own profile photo.
- User authentication (signup, login, logout)
- Real-time messaging with Socket.IO
- Profile management with image upload (Cloudinary)
- Responsive UI with Tailwind CSS & DaisyUI
- Theme switching (light/dark)
- Online users indicator
ChatOn/
├── backend/
│ ├── src/
│ ├── .env.sample
│ └── package.json
├── frontend/
│ ├── src/
│ ├── public/
│ └── package.json
├── package.json
└── README.md
- Node.js (v18+ recommended)
- npm
- MongoDB database (local or Atlas)
- Cloudinary account (for image uploads)
- Frontend: React, Vite, Zustand, Tailwind CSS, DaisyUI, React Router, Socket.IO Client
- Backend: Node.js, Express, MongoDB, Mongoose, Socket.IO, Cloudinary, JWT, bcryptjs
git clone https://github.com/Abdus-Samee-007/ChatOn
cd ChatOncd backend
cp .env.sample .env
# Fill in your MongoDB URI, JWT secret, Cloudinary credentials in .env
npm install
npm run dev- The backend runs on
http://localhost:5000by default.
Open a new terminal:
cd frontend
npm install
npm run dev- The frontend runs on
http://localhost:5173by default.
See backend/.env.sample for required backend environment variables.
To build the frontend for production:
cd frontend
npm run buildTo start the backend in production mode:
cd backend
npm run startFrom the root folder, you can use:
npm run build— Installs dependencies and builds the frontendnpm run start— Starts the backend server
MIT