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