How gilsngprmns/signal-ai-assistant works
Signal AI is a conversational assistant whose primary flow is a user sending a mode-specific message, receiving a Gemini response, and retaining the conversation in PostgreSQL. The React app also provides authentication, conversation history, and admin tools. Document upload and retrieval modules remain in the repository, but the README says they are dormant for normal chat. The graph follows documented and indexed connections; unsampled subsystems are represented conservatively, and the legacy retrieval branch is marked optional.
Main entry points: App.jsx React app · app.js Express API · chat.service.js Chat orchestration · rag.service.js Document retrieval
Components 28
React application
- React app
frontend/src/App.jsx - Chat interface
frontend/src/pages/Chat.jsx - Auth state and pages
frontend/src/context/AuthContext.jsx - Conversation history
frontend/src/pages/History.jsx - Admin console
frontend/src/pages/admin/AdminDashboard.jsx - Frontend API services
frontend/src/services/api.js
API and identity
- Express API
backend/src/app.js - Auth routes and guards
backend/src/routes/auth.routes.js - Auth controller
backend/src/controllers/auth.controller.js - Auth service
backend/src/services/auth.service.js
Conversation and AI
- Conversation routes
backend/src/routes/conversation.routes.js - Chat controller
backend/src/controllers/chat.controller.js - Chat orchestration
backend/src/services/chat.service.js - Conversation storage
backend/src/repositories/conversation.repository.js - AI settings and contexts
backend/src/repositories/context.repository.js - Gemini generation
backend/src/services/ai.service.js
Administration
- Admin routes
backend/src/routes/admin.routes.js - Admin controller
backend/src/controllers/admin.controller.js - Admin services
backend/src/services/admin.service.js - Admin data access
backend/src/repositories/admin.repository.js
Legacy documents
- Document interface
frontend/src/components/UploadDocument.jsx - Document controller
backend/src/controllers/document.controller.js - Document retrieval
backend/src/services/rag.service.js - Embedding generation
backend/src/services/embedding.service.js - Document and chunk storage
backend/src/repositories/document.repository.js
Other components
- User
- PostgreSQL
- Gemini
Connections 31
- User → React app: uses
README.md - React app → Express API: calls API
README.md - React app → Chat interface: routes to
frontend/src/App.jsx - React app → Auth state and pages: provides auth
frontend/src/App.jsx - React app → Conversation history: routes to
frontend/src/App.jsx - React app → Admin console: routes to
frontend/src/App.jsx - Chat interface → Frontend API services: uses
frontend/src/pages/Chat.jsx - Auth state and pages → Frontend API services: uses
frontend/src/context/AuthContext.jsx - Frontend API services → Express API: sends requests
README.md - Express API → Auth routes and guards: mounts
backend/src/app.js - Express API → Conversation routes: mounts
backend/src/app.js - Express API → Admin routes: mounts
backend/src/app.js - Auth routes and guards → Auth controller: routes to
backend/src/routes/auth.routes.js - Auth controller → Auth service: delegates to
backend/src/controllers/auth.controller.js - Conversation routes → Chat controller: routes messages
backend/src/routes/conversation.routes.js - Chat controller → Chat orchestration: requests response
backend/src/controllers/chat.controller.js - Chat orchestration → Conversation storage: reads and writes
backend/src/services/chat.service.js - Chat orchestration → AI settings and contexts: loads context
backend/src/services/chat.service.js - Chat orchestration → Gemini generation: requests generation
backend/src/services/chat.service.js - Conversation storage → PostgreSQL: queries
backend/src/repositories/conversation.repository.js - AI settings and contexts → PostgreSQL: queries
backend/src/repositories/context.repository.js - Gemini generation → Gemini: generates replies
README.md - Admin routes → Admin controller: routes to
backend/src/routes/admin.routes.js - Admin controller → Admin services: delegates to
backend/src/controllers/admin.controller.js - Admin services → Admin data access: uses data access
- Admin data access → PostgreSQL: queries
backend/src/repositories/admin.repository.js - Document interface → Document controller: uploads to
- Document controller → Document retrieval: may invoke
- Document retrieval → Embedding generation: embeds query
backend/src/services/rag.service.js - Document retrieval → Document and chunk storage: checks and searches
backend/src/services/rag.service.js - Embedding generation → Gemini: requests embeddings
backend/src/services/embedding.service.js