WhatsApp Clone is a web-based chat application inspired by WhatsApp. This project includes both the frontend, built with React, and the backend, built with Spring Boot.
- Real-time chat functionality.
- User authentication and registration.
- Group chat creation.
- Sending text messages and attachments.
- User profile management.
- Message timestamps and read receipts.
-
Frontend:
- React
- Redux for state management
- Material-UI for UI components
- WebSocket for real-time messaging
- Tailwind CSS
-
Backend:
- Spring Boot
- Spring Security for authentication
- Spring Data JPA for data persistence
- WebSocket for real-time messaging
- MySQL for database storage
Follow these instructions to set up and run the WhatsApp Clone on your local machine.
- Node.js and npm - Download and Install Node.js
- Java Development Kit (JDK) - Download and Install JDK
-
Clone the repository:
git clone git@github.com:dipenbhat557/Whatsapp-clone.git
-
Navigate to the frontend directory:
cd whatsapp-clone/frontend
- Install frontend dependencies:
npm install
- Navigate to the backend directory:
cd ../backend
- Open the application.properties file and configure your database settings and JWT secret:
spring.datasource.url=jdbc:mysql://localhost:3306/whatsapp spring.datasource.username=root spring.datasource.password=password ... jwt.secret=your-secret-key
- Build and run the backend:
./mvnw spring-boot:run
- Now, navigate back to the frontend directory:
cd ../frontend
- Start the React development server:
npm start
- The WhatsApp Clone should now be running. Access it in your web browser at http://localhost:3000.
Usage
- Register a new account or log in with an existing one.
- Create or join group chats.
- Start sending and receiving messages in real-time.
- Manage your user profile and settings.
Contributing I welcome contributions from the community! If you'd like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix: git checkout -b feature/my-feature or git checkout -b bugfix/my-bugfix.
- Commit your changes and push them to your fork: git commit -m "Add a new feature" and git push origin feature/my-feature.
- Create a pull request to the main branch of the original repository.