feat(questions): implement questions app NestJS backend

Complete backend implementation for the AI-powered research assistant app:

Database Schema (Drizzle ORM):
- collections: Organize questions into folders with colors and icons
- questions: User questions with status, priority, tags, and research depth
- research_results: Results from mana-search service with summaries and key points
- sources: Extracted content from web search results
- answers: AI-generated answers with ratings and citations

NestJS Modules:
- QuestionModule: CRUD operations with filtering, pagination, and status management
- CollectionModule: Collection management with reordering and question counts
- ResearchModule: Integration with mana-search microservice for web search
- AnswerModule: Answer management with ratings and acceptance tracking
- SourceModule: Source content retrieval and management
- HealthModule: Health checks for database and search service

Features:
- Full JWT authentication via @manacore/shared-nestjs-auth
- Research depths: quick (5 sources), standard (15), deep (30)
- Automatic content extraction and summarization
- Follow-up question generation

Also updated:
- Root package.json: Added questions:* development scripts
- setup-databases.sh: Added questions database setup

https://claude.ai/code/session_01Rk3YVJCU3nM8uvVPghRz6r
This commit is contained in:
Claude 2026-01-28 23:52:22 +00:00
parent c0802af67f
commit ec96d4e952
No known key found for this signature in database
49 changed files with 2346 additions and 2 deletions

View file

@ -218,6 +218,13 @@
"search:docker:up": "docker-compose -f services/mana-search/docker-compose.yml up -d",
"search:docker:down": "docker-compose -f services/mana-search/docker-compose.yml down",
"search:docker:logs": "docker-compose -f services/mana-search/docker-compose.yml logs -f",
"questions:dev": "turbo run dev --filter=questions...",
"dev:questions:backend": "pnpm --filter @questions/backend dev",
"dev:questions:web": "pnpm --filter @questions/web dev",
"dev:questions:app": "turbo run dev --filter=@questions/web --filter=@questions/backend",
"dev:questions:full": "./scripts/setup-databases.sh questions && ./scripts/setup-databases.sh auth && pnpm dev:search:docker && concurrently -n auth,search,backend -c blue,yellow,green \"pnpm dev:auth\" \"pnpm dev:search\" \"pnpm dev:questions:backend\"",
"questions:db:push": "pnpm --filter @questions/backend db:push",
"questions:db:studio": "pnpm --filter @questions/backend db:studio",
"dev:projectdoc": "pnpm --filter @manacore/telegram-project-doc-bot start:dev",
"dev:projectdoc:full": "./scripts/setup-databases.sh projectdoc && pnpm dev:projectdoc",
"projectdoc:db:push": "pnpm --filter @manacore/telegram-project-doc-bot db:push",