Skip to content

AI-powered university support agent Accelerator with three-agent orchestration for student services. Built to be run locally or on an Azure AI stack. Useful for Hackathons and Hands On Labs

Notifications You must be signed in to change notification settings

msftsean/47doors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

47 Doors Logo

πŸšͺ 47 Doors: The Universal Front Door Support Agent

Python FastAPI React TypeScript Azure License

Eliminate the "47 Front Doors" Problem - A three-agent AI system that provides a single, intelligent entry point for university student support.


πŸ“– Overview

The Universal Front Door Support Agent is a three-agent AI system that provides a single, intelligent entry point for all university student support requests. Instead of navigating multiple disconnected support channels, students interact with one interface that:

  • 🎯 Detects intent from natural language queries
  • πŸ”€ Routes requests to the correct department
  • 🎫 Creates tickets automatically in ServiceNow
  • πŸ“š Retrieves knowledge articles for self-service
  • πŸ‘€ Escalates to humans for policy-related requests

🎯 Target Impact: Increase first-contact resolution from 40% to 65%

πŸ—οΈ Solution Architecture

Solution Architecture


πŸŽ“ Hackathon Labs Overview

Build this entire system in 8 hours using GitHub Codespaces! This repository includes a complete hackathon curriculum with 8 progressive labs. All labs run in GitHub Codespaces - no local installation required.

πŸ“‹ Lab πŸ“ Title ⏱️ Duration πŸ”¨ What You'll Build
00 πŸš€ Environment Setup 30 min Launch GitHub Codespaces, configure CORS, test the chat interface
01 πŸ€– Understanding AI Agents 90 min Learn multi-agent vs monolithic architectures, build an intent classifier with >90% accuracy
02 πŸ”Œ Azure MCP Setup 30 min Configure Model Context Protocol for Azure OpenAI and AI Search integration
03 πŸ“ Spec-Driven Development 45 min Write feature specs and AI constitution before generating code with Claude/Copilot
04 πŸ” Build RAG Pipeline 2 hrs Implement hybrid search (vector + keyword) with Azure AI Search and 54 KB articles
05 πŸ”— Agent Orchestration 2 hrs Wire up QueryAgent β†’ RouterAgent β†’ ActionAgent pipeline with session management
06 πŸš€ Deploy with azd 90 min Containerize with Docker, deploy to Azure Container Apps with azd up
07 πŸ”Œ MCP Server 60 min (Stretch) Expose your agent as an MCP server for Claude Desktop integration

πŸ“ˆ Learning Path

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  πŸš€ Lab 00  β”‚     β”‚  πŸ€– Lab 01  β”‚     β”‚  πŸ”Œ Lab 02  β”‚     β”‚  πŸ“ Lab 03  β”‚
β”‚    Setup    │────▢│   Agents    │────▢│     MCP     │────▢│    Specs    β”‚
β”‚   30 min    β”‚     β”‚   90 min    β”‚     β”‚   30 min    β”‚     β”‚   45 min    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                                   β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  πŸ” Lab 04  β”‚     β”‚  πŸ”— Lab 05  β”‚     β”‚  πŸš€ Lab 06  β”‚     β”‚  πŸ”Œ Lab 07  β”‚
β”‚     RAG     │────▢│  Pipeline   │────▢│   Deploy    │────▢│     MCP     β”‚
β”‚   2 hrs     β”‚     β”‚   2 hrs     β”‚     β”‚   90 min    β”‚     β”‚   60 min    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Key Skills by Lab

πŸ’‘ Skill Lab 00 Lab 01 Lab 02 Lab 03 Lab 04 Lab 05 Lab 06 Lab 07
🐍 Python/FastAPI ● ● ● ●
πŸ€– Azure OpenAI ● ● ● ●
πŸ” Azure AI Search ● ● ●
πŸ’¬ Prompt Engineering ● ● ● ●
🐳 Docker/Containers ●
☁️ Azure Deployment ●
πŸ”Œ MCP Protocol ● ●

☁️ Azure Service Requirements

Labs 00-03 and 06 can run entirely in mock mode without Azure credentials. Labs 04, 05, and 07 require live Azure OpenAI for their core learning objectives.

πŸ“‹ Requirement Lab 00 Lab 01 Lab 02 Lab 03 Lab 04 Lab 05 Lab 06 Lab 07
βœ… Mock Mode OK βœ“ βœ“ βœ“ βœ“ βœ“
πŸ€– Azure OpenAI (GPT-4o) Required Required Required
πŸ” Azure AI Search Required Required

πŸ’‘ Cost-Saving Tip: Run Labs 00-03 with USE_MOCK_MODE=true to validate your setup before provisioning Azure services. Switch to live Azure OpenAI starting in Lab 04 when you build the RAG pipeline.

πŸ“š Coach Materials: coach-guide/ | πŸ“– Participant Guide: docs/hackathon/


⚑ Quick Start

πŸ“‹ Prerequisites

  • 🐍 Python 3.11+
  • πŸ“¦ Node.js 18+
  • 🐳 Docker (optional)

🌐 Option 1: GitHub Codespaces (Recommended for Quick Testing)

The easiest way to get started is using GitHub Codespaces:

# πŸ”§ Backend setup
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env

# ⚠️ IMPORTANT: Configure CORS for Codespaces
# Edit backend/.env and update CORS_ORIGINS with your Codespaces URLs:
# CORS_ORIGINS=["http://localhost:5173","http://localhost:3000","https://<your-codespace-name>-5173.app.github.dev"]

# πŸš€ Start backend (bind to all interfaces for Codespaces)
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

# 🎨 Frontend setup (new terminal)
cd frontend
npm install
cp .env.example .env

# πŸ“ Update frontend/.env with your backend Codespaces URL:
# VITE_API_BASE_URL=https://<your-codespace-name>-8000.app.github.dev

npm run dev

⚠️ Important Codespaces Configuration:

  1. πŸ”“ Make port 8000 public for external access:

    gh codespace ports visibility 8000:public -c $CODESPACE_NAME
  2. πŸ”— Get your Codespaces URLs from the Ports tab in VS Code, or construct them:

    • 🎨 Frontend: https://<codespace-name>-5173.app.github.dev
    • πŸ”§ Backend: https://<codespace-name>-8000.app.github.dev
    • Your codespace name is in the environment variable $CODESPACE_NAME
  3. βš™οΈ Update CORS configuration in backend/.env:

    CORS_ORIGINS=["http://localhost:5173","http://localhost:3000","https://<your-codespace-name>-5173.app.github.dev"]

    Note: The backend config uses validation_alias to map CORS_ORIGINS from .env to the allowed_origins setting.

  4. πŸ”„ Restart the backend after updating CORS settings to clear the settings cache.

🌐 Service πŸ”— URL
🎨 Frontend https://<codespace>-5173.app.github.dev
πŸ”§ Backend API https://<codespace>-8000.app.github.dev
πŸ“š API Docs https://<codespace>-8000.app.github.dev/api/docs
πŸ’š Health Check https://<codespace>-8000.app.github.dev/api/health

πŸ’» Option 2: Local Development

# πŸ“‚ Clone repository
git clone https://github.com/msftsean/hiedcab_frontdoor_agent.git
cd hiedcab_frontdoor_agent

# πŸ”§ Backend setup
cd backend
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
uvicorn app.main:app --reload --port 8000

# 🎨 Frontend setup (new terminal)
cd frontend
npm install
cp .env.example .env
npm run dev
🌐 Service πŸ”— URL
🎨 Frontend http://localhost:5173
πŸ”§ Backend API http://localhost:8000
πŸ“š API Docs http://localhost:8000/docs
πŸ’š Health Check http://localhost:8000/api/health

🐳 Option 3: Docker Compose

docker-compose up --build
🌐 Service πŸ”— URL
🎨 Frontend http://localhost:3000
πŸ”§ Backend http://localhost:8000

πŸ—οΈ Architecture

πŸ”„ Three-Agent Conversation Flow

Agent Workflow

The three-agent system processes each user query through a coordinated pipeline:

  1. 🎯 QueryAgent - Classifies intent (financial aid, registration, housing, technical support, general)
  2. πŸ”€ RouterAgent - Searches Azure AI Search for relevant KB articles
  3. ⚑ ActionAgent - Generates contextual responses and determines if a support ticket is needed

☁️ Azure Infrastructure

Deployment Infrastructure

πŸ”§ Service πŸ“ Purpose
πŸ€– Azure OpenAI Intent classification, response generation
πŸ“¦ Container Apps Backend API hosting
🌐 Static Web Apps Frontend hosting
πŸ’Ύ Cosmos DB Session and audit storage
πŸ” AI Search Knowledge base search
πŸ” Key Vault Secrets management

☁️ Azure Deployment

Deploy to Azure

🌍 Supported Regions

Deploy to regions with GPT-4o availability:

🌐 Region πŸ€– GPT-4o πŸ€– GPT-4o-mini
πŸ‡ΊπŸ‡Έ East US βœ… βœ…
πŸ‡ΊπŸ‡Έ East US 2 βœ… βœ…
πŸ‡ΊπŸ‡Έ West US 3 βœ… βœ…
πŸ‡¬πŸ‡§ UK South βœ… βœ…
πŸ‡ΈπŸ‡ͺ Sweden Central βœ… βœ…

πŸš€ Deploy with Azure Developer CLI

# πŸ” Login to Azure
azd auth login

# πŸ—οΈ Initialize and deploy
azd init
azd up

πŸ’° Cost Estimates

Cost Tiers

πŸ“Š Scale πŸ‘₯ Users πŸ’΅ Monthly Cost
πŸ§ͺ Development 1-10 $50-100
πŸš€ Small Pilot 100-500 $160-305
πŸ“ˆ Medium 500-2,000 $400-700
🏒 Production 2,000-10,000 $1,000-2,500

See Cost Estimation Guide for details.


πŸ“‘ API Reference

πŸ”§ Method πŸ”— Endpoint πŸ“ Description
POST /api/chat πŸ’¬ Submit support query
GET /api/health πŸ’š Health check
GET /api/session/{id} πŸ“‹ Get session
DELETE /api/session/{id} πŸ—‘οΈ End session

πŸ“€ POST /api/chat

πŸ“₯ Request:

{
  "message": "I forgot my password",
  "session_id": null
}

πŸ“€ Response:

{
  "session_id": "550e8400-e29b-41d4-a716-446655440000",
  "ticket_id": "TKT-IT-20260121-0001",
  "department": "IT",
  "status": "created",
  "message": "I've created a ticket for IT Support...",
  "knowledge_articles": [
    {
      "title": "How to Reset Your Password",
      "url": "https://kb.university.edu/password-reset",
      "relevance_score": 0.94
    }
  ],
  "escalated": false,
  "estimated_response_time": "2 hours"
}

πŸ§ͺ Testing

πŸ”§ Backend

cd backend
source .venv/bin/activate
pytest                           # πŸ§ͺ Run all tests
pytest --cov=app --cov-report=html  # πŸ“Š With coverage

🎨 Frontend

cd frontend
npm test          # πŸ§ͺ Unit tests
npm run test:e2e  # 🎭 E2E tests

πŸ“š Documentation

πŸ“„ Document πŸ“ Description
πŸ“‹ Feature Spec Detailed requirements
πŸ’Ύ Data Model Schema definitions
πŸ—ΊοΈ Implementation Plan Development roadmap
βš™οΈ Customization Guide Hands-on customization lab
πŸ“¦ Sample Customizations Ready-to-use examples
πŸ’° Cost Estimation Detailed pricing

πŸ“ Project Structure

47doors/
β”œβ”€β”€ πŸ”§ backend/           # FastAPI Python backend
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ agents/      # πŸ€– QueryAgent, RouterAgent, ActionAgent
β”‚   β”‚   β”œβ”€β”€ api/         # πŸ“‘ REST endpoints
β”‚   β”‚   β”œβ”€β”€ models/      # πŸ“‹ Pydantic schemas
β”‚   β”‚   └── services/    # ☁️ Azure integrations
β”‚   └── tests/
β”œβ”€β”€ 🎨 frontend/          # React TypeScript frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   └── services/
β”‚   └── tests/
β”œβ”€β”€ πŸŽ“ labs/              # Hackathon curriculum (8 labs)
β”‚   β”œβ”€β”€ 00-setup/
β”‚   β”œβ”€β”€ 01-understanding-agents/
β”‚   β”œβ”€β”€ 02-azure-mcp-setup/
β”‚   β”œβ”€β”€ 03-spec-driven-development/
β”‚   β”œβ”€β”€ 04-build-rag-pipeline/
β”‚   β”œβ”€β”€ 05-agent-orchestration/
β”‚   β”œβ”€β”€ 06-deploy-with-azd/
β”‚   └── 07-mcp-server/
β”œβ”€β”€ πŸ‘¨β€πŸ« coach-guide/       # Facilitation materials
β”œβ”€β”€ πŸ“¦ shared/            # Common resources (constitution, schemas)
β”œβ”€β”€ πŸ“š docs/              # Documentation
β”‚   β”œβ”€β”€ architecture/    # πŸ—οΈ Diagrams
β”‚   β”œβ”€β”€ customization/
β”‚   β”œβ”€β”€ deployment/
β”‚   β”œβ”€β”€ hackathon/       # πŸ“– Participant guides
β”‚   └── specs/           # πŸ“‹ Feature specifications
β”œβ”€β”€ ☁️ infra/             # Azure Bicep templates
β”œβ”€β”€ 🐳 docker-compose.yml
└── πŸ“„ azure.yaml

🀝 Contributing

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/amazing-feature)
  3. πŸ’Ύ Commit your changes (git commit -m 'Add amazing feature')
  4. πŸ“€ Push to the branch (git push origin feature/amazing-feature)
  5. πŸ”€ Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ“Š Version Matrix

πŸ”§ Component πŸ“‹ Required Version βœ… Tested Version
🐍 Python 3.11+ 3.11.9
⚑ FastAPI 0.100+ 0.109.0
πŸ“¦ Node.js 18+ 20.11.0
βš›οΈ React 18+ 18.2.0
πŸ“˜ TypeScript 5.0+ 5.3.3
🐳 Docker 20.10+ 24.0.7
☁️ Azure CLI 2.50+ 2.56.0
πŸš€ azd 1.5+ 1.7.0

πŸ—οΈ Built with Azure AI for Higher Education

πŸ“… Last Updated: 2026-02-04 | πŸ“ Version: 1.0.0

About

AI-powered university support agent Accelerator with three-agent orchestration for student services. Built to be run locally or on an Azure AI stack. Useful for Hackathons and Hands On Labs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •