Welcome to the Full Stack Realtime Chat App! This application offers seamless real-time communication with a modern and responsive design.
- Real-Time Messaging: Experience instant communication powered by Socket.io.
- User Authentication: Secure login and registration using JWT.
- Online Status: View active users in real-time.
- Responsive Design: Optimized for all devices with TailwindCSS and Daisy UI.
- Global State Management: Efficient state handling with Zustand.
- Error Handling: Robust client and server-side error management.
- Typing Indicators: See when other users are typing in real time.
- Media Sharing: Share images and files directly in the chat.
- Message History: Persistent message storage for chat history.
- Dark Mode: User-friendly dark mode for better accessibility.
- Frontend: React, TailwindCSS, Daisy UI
- Backend: Node.js, Express
- Database: MongoDB
- Real-Time Communication: Socket.io
- State Management: Zustand
- Cloud Storage: Cloudinary for media storage
-
Clone the Repository:
git clone https://github.com/burakorkmez/fullstack-chat-app.git cd fullstack-chat-app
-
Install Dependencies:
npm install
-
Configure Environment Variables: Create a
.env
file in the root directory and add the following:MONGODB_URI=your_mongodb_uri PORT=5001 JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret NODE_ENV=development
-
Build the Application:
npm run build
-
Start the Application:
npm start
To run tests, use the following command:
npm test
This app is ready for deployment to cloud platforms like Heroku, Vercel, or AWS. Follow these steps:
- Prepare for Production:
npm run build
- Set Environment Variables on your cloud provider.
- Deploy the app using your preferred method.
For detailed instructions, refer to the Deployment Guide.
Contributions are welcome! Please follow these steps:
- Fork the Repository
- Create a New Branch:
git checkout -b feature/YourFeatureName
- Commit Your Changes:
git commit -m 'Add some feature'
- Push to the Branch:
git push origin feature/YourFeatureName
- Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.