No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗AI-Powered Distributed Real-Time Chat Application
A full-stack, real-time chat application with JWT authentication, live WebSocket messaging, MySQL persistence, and AI-powered Smart Reply suggestions. Built as a two-project monorepo — a Spring Boot API/WebSocket backend and a static HTML/CSS/JS frontend — fully decoupled and independently deployable.
Backend/ Spring Boot 3 + WebSocket (STOMP) + Spring AI + MySQL (Java/Maven)
Frontend/ Static HTML/CSS/JS client (no build step, deploys as-is)
AI Chat Hub is a two-person-to-two-person (1:1) real-time messaging application: users register, log in, see who else is registered, and chat with them instantly over a WebSocket connection, with full message history persisted in MySQL. An AI layer (OpenAI or a local Ollama model, interchangeably) powers two features on top of that: Smart Reply (context-aware suggested responses inside a conversation) and a standalone AI Assistant chat page.
Most "build a chat app" tutorials stop at either the real-time messaging part or the AI part, rarely both, and rarely with production concerns (auth, CORS, deployment, secret handling) treated seriously. This project sets out to build a chat application that is simultaneously:
localhost values that only work on one
machine.GET /api/chat/history,
GET /api/chat/conversations).| Layer | Technology |
|---|---|
| Backend | Java 21, Spring Boot 3.5, Spring Security, Spring Data JPA, Spring WebSocket (STOMP), Spring AI (OpenAI + Ollama), JJWT, BCrypt, Maven |
| Database | MySQL 8 (Hibernate ddl-auto=update) |
| Frontend | HTML5, CSS3, vanilla JavaScript (ES2017+), SockJS, @stomp/stompjs — no framework, no build step |
| Testing | JUnit 5, Spring Boot Test, AssertJ, H2 (in-memory, test-only) |
| Deployment | Vercel (frontend, static), any JVM host — Render/Railway/Fly.io/EC2 (backend) |
This is the beginning of the README. Read the rest at the original. Read the full README ↗