How sanjaycharimadipelli/nova-ai-chatbot works
This is Nova, a browser-based personal AI chat application. Users register or log in, create and manage conversations, send messages, and receive AI replies; the browser also provides voice input and speech output. The Express server serves the client and dispatches API requests, while route handlers use authentication and Firestore-backed persistence. Chat handling loads conversation history, saves the user message, calls Groq, and stores the assistant reply. The excerpts do not show the messages route or all client behavior, so those connections are kept conservative.
Main entry points: server.js Express server · index.js Database config · chat.js Chat handler · script.js Chat client
Components 15
Browser experience
- Chat client
client/script.js - Chat interface
client/index.html
API and identity
- Express server
server/server.js - Auth routes
server/routes/auth.js - Auth middleware
server/middleware/auth.js
Conversation and AI
- Conversation routes
server/routes/conversations.js - Chat handler
server/routes/chat.js - Message routes
server/routes/messages.js - Groq service
server/ai/groqService.js
Persistence
- Database config
server/config/index.js - Firebase adapter
server/config/firebase.js
Other components
- User
- Browser
- Firestore
- Groq API
Connections 20
- User → Browser: uses
- Browser → Chat client: loads
- Chat client → Chat interface: renders
- Chat client → Express server: sends API requests
- Express server → Chat client: serves frontend
- Express server → Auth routes: dispatches auth
- Express server → Conversation routes: dispatches conversations
- Express server → Message routes: dispatches messages
- Express server → Chat handler: dispatches chat
- Auth routes → Database config: gets database
- Auth middleware → Database config: gets database
- Conversation routes → Auth middleware: checks identity
- Conversation routes → Database config: reads and writes
- Message routes → Auth middleware: checks identity
- Chat handler → Auth middleware: checks identity
- Chat handler → Database config: reads and writes
- Chat handler → Groq service: requests reply
- Groq service → Groq API: requests completion
- Database config → Firebase adapter: initializes and gets
- Firebase adapter → Firestore: connects