This is a real-time chat application built using modern technologies to enable seamless communication between users. The application provides an interactive messaging experience, allowing users to connect, chat, and share media.
Demo Video: Watch the demo here
- User Authentication: Users can register using an email or authenticate via Social Login "Facebook" (OAuth2 with Keycloak).
- Real-Time Messaging: Instant message delivery between users using WebSockets.
- Message Notifications: Recipients receive real-time notifications upon receiving a new message.
- User List: Users can see the list of existing users.
- Message State: Update message state when seen by the recipient.
- Image Sharing: Users can send images in chat conversations.
- Spring Boot 3 & Spring Security 6
- OAuth2 & Keycloak
- Spring Data JPA
- PostgreSQL
- Flyway (DB Migration)
- WebSockets
- MapStruct
- Lombok
- OpenAPI & Swagger UI
- Docker & Docker-Compose
- Tomcat Server
- IntelliJ IDEA