How devacharya80/pointerai works
PointerAI is an adaptive AI learning workspace. A student signs in, opens or creates a conversation, and sends a question; the server may ask for clarification, then streams an answer informed by profile and remembered facts, with optional web sources, and saves the result. The graph preserves the documented auth, profile, conversation, personalization, search, and rate-limiting capabilities. Several backend subsystems are represented at directory level because their individual files were not sampled; links there rely on README documentation or indexed references.
Main entry points: message.service.ts Message orchestration · app.ts Express API · App.tsx Web app · useChat.ts Chat interaction
Components 27
Student workspace
- Web app
client/src/App.tsx - Auth session UI
client/src/context/AuthContext.tsx - Auth API client
client/src/api/auth.ts - Chat workspace
client/src/pages/Chat.tsx - Chat interaction
client/src/hooks/useChat.ts - Conversation API
client/src/api/conversations.ts - Stream client
client/src/api/stream.ts
Identity and access
- Auth routes
server/src/modules/auth/auth.route.ts - Auth controller
server/src/modules/auth/auth.controller.ts - Auth service
server/src/modules/auth/auth.service.ts - Google OAuth
server/src/modules/auth/passport.config.ts
Conversation learning
- Learning profile
server/src/modules/profile - Conversation routes
server/src/modules/conversations/conversation.routes.ts - Conversation controller
server/src/modules/conversations/conversation.controller.ts - Message controller
server/src/modules/conversations/message.controller.ts - Message orchestration
server/src/modules/conversations/message.service.ts - Adaptive questioning
server/src/modules/conversations/utils - Profile and memory
server/src/modules/conversations/utils - Web search
server/src/modules/conversations/providers/tavily.provider.ts - AI abstraction
server/src/modules/ai/ai.service.ts - Groq provider
server/src/modules/ai/providers/groq.provider.ts
API and state
- Express API
server/src/app.ts - Rate limiting
server/src/middleware/rateLimit.middleware.ts - PostgreSQL
server/src/lib/prisma.ts - Redis
server/src/lib/redis.ts
Other components
- Student
- Tavily service
Connections 32
- Student → Web app: uses
client/src/App.tsx - Web app → Auth session UI: provides session
client/src/main.tsx - Web app → Chat workspace: routes to
client/src/App.tsx - Student → Auth API client: signs in
client/src/api/auth.ts - Auth session UI → Auth API client: restores session
client/src/context/AuthContext.tsx - Chat workspace → Chat interaction: uses
client/src/hooks/useChat.ts - Chat interaction → Conversation API: loads conversations
client/src/hooks/useChat.ts - Chat interaction → Stream client: streams messages
client/src/hooks/useChat.ts - Auth API client → Express API: calls auth endpoints
client/src/api/auth.ts - Conversation API → Express API: calls conversation endpoints
client/src/api/conversations.ts - Express API → Auth routes: mounts
server/src/app.ts - Express API → Conversation routes: mounts
server/src/app.ts - Express API → Learning profile: mounts
server/src/app.ts - Express API → Rate limiting: applies
server/src/app.ts - Auth routes → Auth controller: routes requests
server/src/modules/auth/auth.controller.ts - Auth controller → Auth service: delegates auth
server/src/modules/auth/auth.controller.ts - Auth controller → Google OAuth: uses OAuth strategy
README.md - Auth service → PostgreSQL: reads and writes
server/src/modules/auth/auth.service.ts - Conversation routes → Conversation controller: routes conversations
server/src/modules/conversations/conversation.routes.ts - Conversation routes → Message controller: routes messages
server/src/modules/conversations/conversation.routes.ts - Conversation controller → Message orchestration: manages conversations
server/src/modules/conversations/conversation.controller.ts - Message controller → Message orchestration: prepares and saves
server/src/modules/conversations/message.controller.ts - Message controller → AI abstraction: requests stream
server/src/modules/conversations/message.controller.ts - Message orchestration → Adaptive questioning: classifies ambiguity
server/src/modules/conversations/message.service.ts - Message orchestration → Profile and memory: builds context
server/src/modules/conversations/message.service.ts - Message orchestration → Web search: searches when needed
server/src/modules/conversations/message.service.ts - Message orchestration → AI abstraction: prepares AI context
server/src/modules/conversations/message.service.ts - Message orchestration → PostgreSQL: persists messages
server/src/modules/conversations/message.service.ts - Learning profile → PostgreSQL: stores profile
README.md - AI abstraction → Groq provider: dispatches generation
server/src/modules/ai/ai.service.ts - Web search → Tavily service: fetches sources
README.md - Rate limiting → Redis: checks limits
README.md