Talksy is a modern real-time chat application built with the MERN stack (MongoDB, Express.js, React.js, Node.js) and Socket.IO for real-time communication. The app features a clean UI with theme customization, user authentication, real-time messaging, image sharing, and online/offline user status.
- User authentication with JWT
- Real-time messaging with Socket.IO
- Multiple theme options
- Image sharing support
- User profile customization
- Online/Offline user status
- Modern UI with Tailwind CSS and DaisyUI
- Responsive design
Frontend:
- React.js
- Tailwind CSS
- DaisyUI
- Socket.IO Client
- Zustand (State Management)
- React Router DOM
- Axios
Backend:
- Node.js
- Express.js
- MongoDB
- Socket.IO
- JWT Authentication
- Cloudinary (Image Storage)
- Bcrypt.js
Before running this project, you will need to add the following environment variables to your .env file in the backend directory:
PORT=8080
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secretClone the project
git clone https://github.com/yourusername/talksy.git
cd talksyInstall backend dependencies
cd backend
npm installInstall frontend dependencies
cd frontend
npm installStart the backend server
cd backend
npm run devStart the frontend development server
cd frontend
npm run devThe application will be available at:
- Frontend: http://localhost:5173
- Backend: http://localhost:8080
chat-app/
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── store/
│ │ └── lib/
│ ├── public/
│ └── package.json
└── backend/
├── src/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── middleware/
│ └── lib/
└── package.json
Contributions are always welcome! Please follow these steps:
- Fork the repository
- Create a new branch:
git checkout -b feature-name - Make your changes and commit them:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature-name - Submit a pull request