English | Deutsch | Français | Español | 日本語
ChatApp is a real-time messaging platform built using Spring Boot and MongoDB, designed to provide smooth, real-time communication with WebSocket support. The app features user authentication, email verification, password reset, and chat room creation, making it a robust solution for any chat-related application.
- 🌐 Real-time messaging powered by WebSockets.
- 🗂️ Backend built with Spring Boot and MongoDB for persistence.
- 🔑 User authentication with email verification and password reset functionalities.
- 📱 Responsive design suitable for both desktop and mobile platforms.
- 🛠️ Simple but powerful chat room creation and management.
- Backend: Spring Boot, MongoDB
- WebSocket: For real-time communication
- Frontend: HTML, CSS, JavaScript
- Authentication: Spring Security (BCrypt for password hashing, Email verification)
- Build Tool: Maven
Before you begin, ensure you have the following installed on your local machine:
- Git: Install Git
- Java 17 or higher: Download here
- Maven: Install Maven
- MongoDB for version 1.0.7 and less: Install MongoDB and make sure it's running.
- MongoDB Atlas for version 1.0.8 and up Setup MongoDB Atlas
To set up and run the application locally, follow these steps:
-
Clone the repository:
git clone https://github.com/lyfe691/ChatApp.git cd ChatApp
-
Set up environment variables:
- Create and configure the
.env
file with your email credentials for sending verification and password reset emails:MAIL_USERNAME=<your_email> MAIL_PASSWORD=<your_password> # Only if running v1.0.8 and up SPRING_DATA_MONGODB_URI=mongodb+srv://<your-username>:<your-password>@<your-cluster-name>.ebtag.mongodb.net/<appname(chatapp)>?retryWrites=true&w=majority
- Create and configure the
-
Install the necessary dependencies: Make sure you have Maven installed.
mvn install
-
Run the application:
mvn spring-boot:run
-
Access the app: Open your browser and go to
http://localhost:8080
.
Note
To connect to the app from other devices within your network, you'll need to access it viahttp://<your-ip>:8080
. Additionally, you must replace all instances oflocalhost
in the backend code with your IP address.
Once the application is running:
- Sign up: Create an account to start using the chat features. You will receive an email to verify your account.
- Log in: Once verified, log in to the app.
- Create/Join a chat room: You can either create your own chat room or join an existing one.
- Start chatting: Send and receive messages in real time! (in your network)
This app uses Spring Security with the following features:
- Password encryption with BCrypt.
- Email verification for new user registration.
- Password reset via email token.
I welcome contributions! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -m 'Add feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Planned features and improvements:
- 🎨 Custom user avatars.
- 🔔 Push notifications for incoming messages.
- 🌐 Multilingual support.
- 🔞 Censoring
Stay tuned for more updates!
For any inquiries or feedback, feel free to reach out via my Website.