# System Integration TODO - Merging ASP.NET Chatbot with Existing Backend ## Overview Integrate the ASP.NET chatbot service into the existing Node.js backend system to provide specialized interview capabilities while maintaining the current architecture. ## Phase 1: Container Integration ### 1.1 Add Chatbot Service to Docker Compose - **Status**: ✅ Completed - **Description**: Add the ASP.NET chatbot service to the main docker-compose.yml file - **Files**: `docker-compose.yml` - **Details**: Configure service with proper networking, environment variables, and dependencies ### 1.2 Update Backend Docker Compose - **Status**: ✅ Completed - **Description**: Update backend docker-compose.yml to include chatbot service dependency - **Files**: `backend/docker-compose.yml` - **Details**: Add chatbot service and ensure proper service communication ### 1.3 Create Chatbot Service Dockerfile - **Status**: ✅ Completed - **Description**: Create proper Dockerfile for the ASP.NET chatbot service - **Files**: `AISApp/Dockerfile` - **Details**: Multi-stage build with proper .NET 9.0 runtime and configuration ## Phase 2: Backend Service Integration ### 2.1 Create ChatbotService - **Status**: ✅ Completed - **Description**: Create new service to handle communication with ASP.NET chatbot - **Files**: `backend/src/services/ChatbotService.ts` - **Details**: HTTP client wrapper for chatbot service with error handling and fallback ### 2.2 Update AIService to Use Chatbot - **Status**: ✅ Completed - **Description**: Modify AIService to proxy requests to chatbot service instead of direct OpenRouter - **Files**: `backend/src/services/AIService.ts` - **Details**: Add chatbot service integration while maintaining fallback to direct OpenRouter ### 2.3 Update AIController - **Status**: ✅ Completed - **Description**: Modify AIController to use new chatbot service integration - **Files**: `backend/src/controllers/rest/AIController.ts` - **Details**: Update chat endpoints to use chatbot service, maintain existing interview flow ### 2.4 Add Environment Variables - **Status**: ✅ Completed - **Description**: Add new environment variables for chatbot service configuration - **Files**: `env.example`, `env.production`, `env.cloudflare` - **Details**: Add chatbot service URL, timeout, and fallback configuration ## Phase 3: ASP.NET Service Modifications ### 3.1 Add MySQL Database Support - **Status**: ✅ Completed - **Description**: Replace SQLite with MySQL database connection in ASP.NET service - **Files**: `AISApp/AISApp/AIS.cs`, `AISApp/AISApp/Program.cs` - **Details**: Add MySQL connection string and update database operations ### 3.2 Add Interview Context Endpoints - **Status**: ✅ Completed - **Description**: Create endpoints for interview initialization and context management - **Files**: `AISApp/AISApp/Program.cs` - **Details**: Add endpoints for interview start, status, and completion ### 3.3 Implement Conversation Sync - **Status**: ✅ Completed - **Description**: Sync conversation data between ASP.NET service and MySQL database - **Files**: `AISApp/AISApp/AIS.cs` - **Details**: Update conversation persistence to use MySQL instead of SQLite ### 3.4 Add Interview-Specific Prompts - **Status**: ✅ Completed - **Description**: Modify system prompts based on job requirements and interview context - **Files**: `AISApp/AISApp/prompt.txt`, `AISApp/AISApp/AIS.cs` - **Details**: Dynamic prompt generation based on job details and interview stage ## Phase 4: Database Integration ### 4.1 Update Database Schema - **Status**: ✅ Completed - **Description**: Add any required database changes for chatbot integration - **Files**: `database/` (if needed) - **Details**: Ensure conversation tables support chatbot service requirements ### 4.2 Add Database Migration Scripts - **Status**: ✅ Completed - **Description**: Create migration scripts for any database schema changes - **Files**: `backend/` (new migration files) - **Details**: SQL scripts for any required table modifications ## Phase 5: Configuration and Environment ### 5.1 Update Nginx Configuration - **Status**: ✅ Completed (Not Required) - **Description**: Add nginx routing for chatbot service if needed - **Files**: `nginx/nginx.conf` - **Details**: Add proxy rules for chatbot service endpoints ### 5.2 Update Environment Files - **Status**: ✅ Completed - **Description**: Update all environment files with chatbot service configuration - **Files**: `env.example`, `env.production`, `env.cloudflare` - **Details**: Add chatbot service environment variables ### 5.3 Update Docker Compose Environment - **Status**: ✅ Completed - **Description**: Add chatbot service environment variables to docker-compose - **Files**: `docker-compose.yml` - **Details**: Add environment variable mapping for chatbot service ## Phase 6: Testing and Validation ### 6.1 Service Communication Test - **Status**: Pending - **Description**: Test communication between backend and chatbot service - **Details**: Verify HTTP requests work correctly between services ### 6.2 Database Integration Test - **Status**: Pending - **Description**: Test database operations in chatbot service - **Details**: Verify conversation sync and data persistence ### 6.3 End-to-End Interview Flow Test - **Status**: Pending - **Description**: Test complete interview flow with chatbot integration - **Details**: Verify mandatory questions → chat → completion flow works ## Phase 7: Documentation and Cleanup ### 7.1 Update API Documentation - **Status**: Pending - **Description**: Update API documentation to reflect chatbot integration - **Files**: `backend/ADMIN_API.md`, `backend/AI_CONFIGURATION.md` - **Details**: Document new chatbot service endpoints and configuration ### 7.2 Update Deployment Scripts - **Status**: Pending - **Description**: Update deployment scripts to include chatbot service - **Files**: `deploy-production.ps1`, `deploy-production.sh` - **Details**: Add chatbot service to deployment process ### 7.3 Clean Up Temporary Files - **Status**: Pending - **Description**: Remove any temporary files created during integration - **Details**: Clean up test files and temporary configurations ## Notes - All changes maintain backward compatibility - Fallback to direct OpenRouter if chatbot service fails - No frontend changes required initially - Maintain existing interview flow and database structure - Chatbot service runs on port 5000 internally, exposed via nginx if needed