This project is a Real-Time Chat Application built using Spring Boot for the backend and React.js for the frontend. It enables seamless real-time messaging using WebSocket, STOMP, and SockJS while ensuring secure and efficient data handling with MongoDB and JWT-based authentication.
- Real-Time Messaging: Uses WebSocket and STOMP for instant communication.
- Multiple Chat Rooms: Supports 50+ simultaneous chat rooms.
- User Authentication & Authorization: Secure JWT-based authentication.
- Scalable Message Storage: Utilizes MongoDB for efficient data management.
- RESTful APIs: API endpoints for user and chat management.
- Encryption & Security: Ensures secure message exchange and authorization.
- Responsive UI: Built with React.js for an enhanced user experience.
- Spring Boot (Microservices architecture)
- Spring JPA (Data persistence)
- MongoDB (NoSQL database for message storage)
- Maven (Build automation & dependency management)
- Lombok (Reducing boilerplate code)
- Spring Security & JWT (Authentication & Authorization)
- WebSocket, STOMP, SockJS (Real-time messaging)
- Postman (API testing & documentation)
- React.js (Frontend development)
- Redux (State management)
- Axios (API requests handling)
- Material UI & Bootstrap (UI components)
- Java 11+
- Node.js & npm
- MongoDB
- Maven
- Clone the repository:
git clone https://github.com/your-repo/chat-application.git cd chat-application/backend
- Configure MongoDB database in
application.properties
. - Install dependencies & build the project:
mvn clean install
- Run the Spring Boot application:
mvn spring-boot:run
- Navigate to the frontend directory:
cd ../frontend
- Install dependencies:
npm install
- Start the React development server:
npm run dev
- Open
http://localhost:3000
to access the frontend.
Use Postman to test API endpoints. API documentation is available at /swagger-ui
when the backend is running.
- Fork the repository.
- Create a feature branch (
git checkout -b feature-name
). - Commit your changes (
git commit -m "Added new feature"
). - Push the branch (
git push origin feature-name
). - Open a pull request.