A real-time chatting application with authentication, authorization, and global state management.
- Frontend: ReactJS, TailwindCSS, DaisyUI
- Backend: Node.js, Express
- Database: MongoDB
- Real-time: Socket.io
- State Management: Zustand
- Authentication: JWT (JSON Web Token)
- 🌟 Authentication & Authorization: Secure login and signup with JWT.
- 👾 Real-time Messaging: Instant messaging between users using Socket.io.
- 🚀 Online User Status: Track and display the status of online users.
- 👌 Global State Management: Manage application state globally using Zustand.
- 🐞 Error Handling: Graceful error handling on both the client and server sides.
-
Clone the repository:
git clone https://github.com/Sarthakkashyapp/SocialSync.git
-
Navigate to the project folder:
cd SocialSync
-
Install dependencies for both the frontend and backend:
Backend and frontend :
cd backend npm install cd frontend npm install
-
Create a .env file in the root directory and add the required environment variables for MongoDB, JWT secret, and any other credentials.
-
Run the development server:
Backend and Frontend:
cd backend npm run dev cd frontend npm run dev
-
Open http://localhost:5001 in your browser to start using the app.
- Register or log in using your credentials.
- Once logged in, you'll be able to see real-time messages from other users.
- Track the online status of users in the chat
- Fork this repository.
- Create your feature branch (git checkout -b feature-name).
- Commit your changes (git commit -am 'Add new feature').
- Push to the branch (git push origin feature-name).
- Create a new Pull Request. Please make sure to follow the coding standards and write tests for your code where applicable.
This project is licensed under the MIT License - see the LICENSE file for details.