How shweta-bharti50/ai-chatbot-application works
This Spring application provides authenticated AI customer-support chat. Users register or log in, manage conversations, send messages, and retrieve chat history. ChatService verifies user ownership, stores the user message, requests a reply from the OpenAI-backed AI service, and stores the response. Authentication issues JWTs and a security layer validates requests. Source excerpts establish these core calls; the FAQ and broader user-management capabilities are visible in the tree, but their full behavior is not sampled.
Main entry points: UserRepository.java User Repository · ChatService.java Chat Service · AuthService.java Auth Service · application.properties Application Database
Components 20
HTTP API
- Auth API
src/main/java/com/AI_Chatbot/controller/AuthController.java - Conversation API
src/main/java/com/AI_Chatbot/controller/ConversationController.java - Chat API
src/main/java/com/AI_Chatbot/controller/ChatController.java - User API
src/main/java/com/AI_Chatbot/controller/UserController.java
Application Services
- Auth Service
src/main/java/com/AI_Chatbot/service/AuthService.java - Conversation Service
src/main/java/com/AI_Chatbot/service/ConversationService.java - Chat Service
src/main/java/com/AI_Chatbot/service/ChatService.java - AI Service
src/main/java/com/AI_Chatbot/ai/AIService.java - OpenAI Adapter
src/main/java/com/AI_Chatbot/ai/OpenAIService.java
Authentication
- Security Config
src/main/java/com/AI_Chatbot/security/SecurityConfig.java - JWT Filter
src/main/java/com/AI_Chatbot/security/JwtAuthenticationFilter.java - JWT Service
src/main/java/com/AI_Chatbot/security/JwtService.java - User Details
src/main/java/com/AI_Chatbot/security/CustomUserDetailsService.java
Persistence
- User Repository
src/main/java/com/AI_Chatbot/repository/UserRepository.java - Conversation Repository
src/main/java/com/AI_Chatbot/repository/ConversationRepository.java - Message Repository
src/main/java/com/AI_Chatbot/repository/ChatMessageRepository.java - FAQ Repository
src/main/java/com/AI_Chatbot/repository/FAQRepository.java - Application Database
src/main/resources/application.properties
Other components
- User
- OpenAI API
Connections 28
- User → Auth API: registers or logs in
- Auth API → Auth Service: delegates auth
- Auth Service → User Repository: looks up and saves
- Auth Service → JWT Service: creates token
- User → Conversation API: manages conversations
- Conversation API → Conversation Service: delegates
- Conversation Service → User Repository: loads user
- Conversation Service → Conversation Repository: reads and writes
- User → Chat API: sends or reads chat
- Chat API → Chat Service: delegates
- Chat Service → User Repository: loads user
- Chat Service → Conversation Repository: checks ownership
- Chat Service → Message Repository: stores and reads
- Chat Service → AI Service: requests reply
- AI Service → OpenAI Adapter: implemented by
- OpenAI Adapter → OpenAI API: sends prompt
- OpenAI API → OpenAI Adapter: returns completion
- User → User API: requests user operation
- User API → User Repository: reads or deletes
- User Repository → Application Database: persists users
- Conversation Repository → Application Database: persists conversations
- Message Repository → Application Database: persists messages
- FAQ Repository → Application Database: accesses FAQs
- Security Config → JWT Filter: configures security
- JWT Filter → JWT Service: validates tokens
- JWT Filter → User Details: loads principal
- User Details → User Repository: loads account
- JWT Service → Auth Service: issues login token