gigaSync is a real-time messaging application inspired by WhatsApp, built with a modern tech stack to provide a seamless and responsive user experience. It includes features such as real-time messaging, user authentication, and Google login.
- Real-time messaging using Socket.io
- User authentication with JWT (JSON Web Tokens)
- Real-time video call with WebRTC
- Google login integration
- Responsive design with Tailwind CSS
- State management with Redux
- MongoDB for data storage
- Manage user storage ex. media and files
- Frontend: React.js, Redux, Tailwind CSS
- Backend: Node.js, Express
- Authentication: JWT, Google OAuth
- Real-time Communication: Socket.io
- Real-time videoCall WebRTC
- Database: MongoDB
- Clone the repository
git clone [https://github.com/LinuxKunaL/gigasync.git](https://github.com/yourusername/gigasync.git)
cd gigasync
- Install dependencies for both client and server
# For the client
cd client
npm install
# For the server
cd ../server
npm install
- SERVER .env , Create a .env file in the root of the server directory and add the following variables
PORT=1000
HOST=localhost
JWT_KEY=secret
JWT_EXPIRES_IN=5d
MONGODB_URL= .......
MONGODB_NAME=gigasync
GOOGLE_SMTP_HOST=smtp.gmail.com
GOOGLE_SMTP_PORT=465
[email protected]
GOOGLE_SMTP_PASS=xxxx xxxx xxxx xxxx
- CLIENT .env , Create a .env file in the root of the client directory and add the following variables
REACT_APP_BACKEND_HOST = http://localhost:1000
- Start the development servers
# For the client
cd client
npm run start
# For the server
cd ../server
npm run start
Once the servers are running, you can access the application at http://localhost:3000 (or the port specified in your .env file). Register or login using Google to start using the messaging features.
gigasync/
├── client/ # Frontend React application
│ ├── public/ # Public assets
│ ├── src/ # Source code
│ │ ├── components/ # React components
│ │ ├── app/
│ │ │ ├── redux # Redux setup
│ │ ├── components # Components
│ │ │ ├───── interface # contains input,button,tooltip and more.
│ │ ├── util # Utility functions .ts
│ │ ├── views # Main views here
│ │ ├── App.js # Main App component
│ │ └── index.js # Entry point
│ └── package.json # Client dependencies
├── server/ # Backend Node.js application
│ ├── controllers/ # Controllers for handling requests
│ ├── models/ # Mongoose models
│ ├── routes/ # Express routes
│ ├── utils/ # Utility functions
│ └── server.js # Server entry point
└── README.md # This file
Contributions are welcome! Please fork the repository and create a pull request with your changes. Make sure to follow the existing code style and include tests for any new features or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for more details.