Microsoft AI & Education

CohortAI

AI-powered course intelligence, built on the Microsoft stack

AI-powered course intelligence built on the 2026 Microsoft platform. Students get a personal tutor that knows every lecture, tutorial and past exam. Teachers get real-time intelligence on who's struggling and why. All inside Microsoft Teams. Deployed over one weekend.

494
Docs Indexed
20
Students
30
Endpoints
35
Functions
80
Graph Nodes
167
Graph Edges
Deployed Over 1 Weekend
From Zero to Working Demo
πŸŽ“

The Student Experience

Students open Teams and chat with CohortAI like they'd message a friend. No new apps to install, no portals to bookmark, no passwords to remember. The AI knows the course material, tracks their progress, and adapts to their level.

Core
πŸ’¬ AI Tutor
Ask anything about the course. Get Socratic guidance grounded in course materials.
Uses RAG to search 316 indexed documents: lectures, tutorials, textbook chapters, past exams. Returns grounded answers with source citations. Maintains 10-turn conversation history so follow-up questions work naturally. Guides students toward understanding rather than giving direct answers.
POST /api/tutor
Example in Teams
I don't understand how to draw a free body diagram for a truss joint
Good question. Let's start with the basics β€” when you isolate a joint, what forces act on it? Think about what's connected to that joint.

πŸ“š Sources: Lecture 3 β€” FBDs (Week 3)
The members connected to it?
Exactly. Each member exerts a force along its axis. Now, at a pin joint, are those forces tension or compression? What's the difference?
Core
πŸ“ Adaptive Quizzes
Practice questions that match the student's current level. Auto-graded with targeted feedback.
Two modes: generate creates questions, answer scores them. Difficulty adapts to mastery: below 40% gets foundation, 40-70% gets application, above 70% gets analysis-level questions. Each answer returns a score, correctness, detailed feedback, and any misconceptions identified. Mastery graph updates after each attempt.
POST /api/quiz
Example in Teams
Quiz me on trusses
πŸ“ Quiz: Trusses
Difficulty: Application (your mastery: 50%)

A planar truss has 7 joints and 11 members. Is it statically determinate? Explain using the equation m = 2j βˆ’ r.
m = 2j - 3, so 2(7) - 3 = 11. Yes it's determinate.
βœ… Score: 4/5. Correct conclusion! One note: you wrote r = 3 which assumes 3 reaction forces (pin + roller). That's right here, but always check the support conditions first.
Core
πŸ“Έ Work Assessment
Photograph handwritten work. Get rubric-based feedback in seconds.
Uses GPT-4o Vision to analyse photos of handwritten engineering solutions. Scores against a five-criterion rubric: Free Body Diagram (25%), Method Selection (25%), Calculations (25%), Final Answer (15%), Communication (10%). Returns overall score, per-criterion breakdown, strengths, areas for improvement, and written feedback.
POST /api/assess
Example in Teams
Can you check my work? πŸ“Ž photo
πŸ“Š Overall Score: 72/100

β€’ Free Body Diagram: 22/25
β€’ Method: 20/25 β€” correct approach
β€’ Calculations: 15/25 β€” sign error in moment equation
β€’ Answer: 10/15
β€’ Communication: 5/10

πŸ”§ Check the moment about point A. The distance for the 5kN force is incorrect.
Personalised
πŸ“š Study Tools
Recommendations, study plans, and a personal dashboard driven by mastery data.
🎯
Study Recommendations
Identifies the 3 weakest topics (below 60% mastery), sorted by week. Generates specific revision strategies with links to relevant course resources.
POST /api/study-recs
πŸ“‹
Study Plan
Structured plan covering up to 4 focus areas. Searches course resources for each topic and builds a prioritised schedule based on overall mastery.
POST /api/study-plan
πŸ“Š
Personal Dashboard
HTML dashboard showing mastery per topic, overall average, and class rank. Can be pinned as a Teams tab for always-on visibility.
GET /api/dashboard?view=student
Student Dashboard β€” Grady Archie (ENGG1300)
Live preview of the student mastery dashboard. Each student sees their own topic-by-topic progress, overall average, and class rank.
πŸ‘©β€πŸ«

The Teacher Experience

Teachers don't need to go looking for problems. CohortAI surfaces them automatically. Daily alerts for at-risk students, real-time curriculum intelligence, and a weekly digest that writes itself.

Automated
⚠️ Early Warning System
Daily automated scan. Flags students falling behind before they fail.
Runs on a daily timer (7am AEST). Scans every student's mastery graph against a configurable threshold (default 50%). Sorts results by severity. Sends Adaptive Card alerts to the teacher's Teams channel via Microsoft Graph. Also available on demand.
GET /api/early-warning?threshold=50
Daily Alert in Teams
⚠️ Early Warning Report (threshold: 50%)
Students at risk: 3 of 20

πŸ”΄ Neva Nolan β€” Distributed Loads: 29%
πŸ”΄ Alex Chen β€” Frames: 35%
🟑 Sam Park β€” Trusses: 42%, FBDs: 48%
On Demand
πŸ“Š Curriculum Signals
Which topics are students struggling with? Cohort-level intelligence in real time.
Aggregates mastery data across all students per topic. Calculates averages, standard deviation, and severity. Identifies topics where many students fall below threshold. Suggests specific actions: more worked examples, extra tutorials, adjusted pacing. Cached 1 hour.
POST /api/curriculum_signals
Example in Teams
Show me the curriculum signals
πŸ“Š Curriculum Signals

[HIGH] Distributed Loads β€” avg: 38%
β†’ Add more worked examples

[MEDIUM] Frames β€” avg: 52%
β†’ Review tutorial difficulty

[OK] Free Body Diagrams β€” avg: 71%
Weekly
πŸ“ˆ Curriculum Digest
GPT-4o writes a narrative summary of how the cohort tracked this week.
Collects mastery data, quiz scores, and engagement signals, then GPT-4o writes a plain-English summary. Can auto-post to a Teams channel for the teaching team. Cached 1 hour. Teachers can trigger a fresh digest and post with ?post=true.
POST /api/curriculum_digest
Weekly Summary
Strong progress on FBDs this week β€” average mastery rose from 62% to 71% after the extra tutorial. However, Distributed Loads remains concerning: 8 of 20 students below 50%. Consider a worked example session before mid-term. Three students need individual check-ins.
Automated
πŸ“š Generate Module
Auto-creates Teams Classwork modules with targeted resources for struggling topics.
Detects topics where students are struggling, then GPT-4o generates a full remediation module: concept reviews, worked examples, practice problems, and quick reference cards. Each resource is uploaded as an HTML file to SharePoint and linked in Teams Classwork as a draft module for teacher review before publishing. Two modes: single topic or auto-scan all topics below threshold.
POST /api/generate-module
Module Generation
Generate a module for Distributed Loads
πŸ“š Module Created: Understanding Distributed Loads, Shear Force, and Bending Moment

5 resources uploaded to Classwork:
πŸ“– Concept Review Β· ~15 min
✏️ Worked Example: UDL on Simply Supported Beam · ~20 min
✏️ Worked Example: Triangular Load on Cantilever · ~20 min
πŸ“ Practice Problems Β· ~25 min
πŸ“‹ Quick Reference Card Β· ~5 min

Status: DRAFT β€” review and publish in Classwork tab.
Visual
πŸ“Š Dashboards
Cohort and teacher views. Pin as Teams tabs for always-on visibility.
πŸ‘₯
Cohort View
All students ranked by overall mastery. Topic-by-topic breakdown. See who's ahead, who's behind, and where the gaps are at a glance.
GET /api/dashboard?view=cohort
🏫
Teacher View
Aggregated analytics: class averages per topic, at-risk count, engagement trends. The view for a course review meeting.
GET /api/dashboard?view=teacher
Teams Tabs
πŸ“‘ Static Tabs
Three dedicated tabs in the CohortAI Foundry app. Teams dark purple palette. SSO-authenticated.
πŸŽ“
Course Admin
Self-service course provisioning wizard. Upload a PDF, review extracted structure, add teaching team, click provision. Role-gated via Teams SSO β€” students see a lock screen.
GET /api/teacher-portal
πŸ“Š
My Gradebook
Cross-course student mastery matrix. Each student sees their performance across all enrolled courses with topic-level heatmap, cohort ranking, and progress trends.
GET /api/gradebook
πŸ“ˆ
Teacher Insights
Cross-course intelligence dashboard for teaching staff. Program-wide topic difficulty rankings, course health comparison, at-risk student aggregation, and curriculum signals that span multiple courses.
GET /api/teacher-insights
Teacher Dashboard β€” ENGG1300 Analytics
Full cohort analytics: heatmap, at-risk students, topic health, and student roster. Pin as a Teams tab for always-on visibility.
Cohort Leaderboard β€” ENGG1300
Student leaderboard ranked by overall mastery. Visual progress bars with colour-coded performance tiers.
⚑

How It Works

Every interaction follows the same path through the Microsoft stack.

Interface
Orchestration
AI / Compute
Data
Identity
flowchart TB
  subgraph Interface["πŸ–₯️ Microsoft Teams"]
    direction LR
    STU["πŸ‘¨β€πŸŽ“ Student Chat"]
    TCH["πŸ‘©β€πŸ« Teacher Channel"]
    TABS["πŸ“‘ Static Tabs\n(Course Admin Β· Gradebook Β· Insights)"]
  end

  subgraph Orchestration["🧠 Orchestration Layer"]
    direction LR
    FA["πŸ€– Foundry Agent Service (v2)\n11 OpenAPI Tools Β· File Search (494 docs)\nCode Interpreter Β· 3-role system prompt"]
    CS["πŸ’¬ Copilot Studio (v1)\n9 Topics Β· Trigger phrases\nHTTP β†’ Azure Functions"]
  end

  subgraph Compute["⚑ Azure Functions (Python)"]
    direction LR
    TUTOR["/api/tutor\nRAG + Socratic guidance"]
    QUIZ["/api/quiz\nAdaptive generation + scoring"]
    ASSESS["/api/assess\nGPT-4o Vision rubric"]
    STUDY["/api/study-recs\n/api/study-plan"]
    WARN["/api/early-warning\nDaily 7am scan"]
    SIGNALS["/api/curriculum_signals\n/api/curriculum_digest"]
    DASH["/api/dashboard\nStudent Β· Teacher Β· Cohort"]
    GENMOD["/api/generate-module\nAuto-create Teams Classwork"]
    PROVISION["/api/provision\nCourse Outline β†’ Full Setup"]
    PORTAL["/api/teacher-portal\n/api/gradebook\n/api/teacher-insights"]
  end

  subgraph AI["πŸ§ͺ Azure OpenAI"]
    GPT["GPT-4o\n(Sweden Central)\nText + Vision"]
  end

  subgraph Knowledge["πŸ“š Knowledge Layer"]
    direction LR
    AIS["πŸ” Azure AI Search\n494 documents indexed\nLectures Β· Tutorials Β· Exams"]
    FS["πŸ“ Foundry File Search\nVector store (v2 RAG path)"]
  end

  subgraph Graph["πŸ•ΈοΈ Cosmos DB (Gremlin)"]
    KG["Knowledge Graph\n80 vertices Β· 167 edges\nStudents Β· Topics Β· Mastery\nPrerequisites Β· Quiz History"]
  end

  subgraph Identity["πŸ” Microsoft Graph + Entra ID"]
    direction LR
    SSO["Teams SSO\nTwo-identity model"]
    ROSTER["Education API\nRoster sync Β· Role gating"]
  end

  subgraph Content["πŸ“¦ SharePoint + Blob Storage"]
    SP["Course materials\nAuto-indexed by AI Search"]
    BLOB["Generated modules\nHTML β†’ SharePoint Classwork"]
  end

  STU -->|"Natural language"| FA
  STU -->|"Trigger phrases"| CS
  TCH -->|"Commands + alerts"| FA
  TABS -->|"SSO authenticated"| PORTAL

  FA -->|"OpenAPI tool calls"| Compute
  CS -->|"HTTP POST"| Compute

  TUTOR --> AIS
  TUTOR --> GPT
  QUIZ --> GPT
  QUIZ --> KG
  ASSESS --> GPT
  STUDY --> KG
  STUDY --> AIS
  WARN --> KG
  WARN -->|"Adaptive Cards via Graph"| TCH
  SIGNALS --> KG
  SIGNALS --> GPT
  DASH --> KG
  GENMOD --> GPT
  GENMOD --> BLOB
  PROVISION --> KG
  PROVISION --> AIS
  PROVISION --> SSO

  FA --> FS
  AIS --> SP
  PORTAL --> SSO
  PORTAL --> ROSTER

  style Interface fill:#0078D4,stroke:#005A9E,color:#fff
  style Orchestration fill:#4F46E5,stroke:#3730A3,color:#fff
  style Compute fill:#5C2D91,stroke:#4B2376,color:#fff
  style AI fill:#7C3AED,stroke:#5B21B6,color:#fff
  style Knowledge fill:#0078D4,stroke:#005A9E,color:#fff
  style Graph fill:#D83B01,stroke:#A32D01,color:#fff
  style Identity fill:#107C10,stroke:#0B5B0B,color:#fff
  style Content fill:#008272,stroke:#005D53,color:#fff
    
1
Student sends a message in Teams
"Quiz me on trusses" or "Can you check my work?" Natural language, no commands to learn.
Microsoft Teams β†’ Foundry Agent (v2) or Copilot Studio (v1)
2
Agent decides what to do
The Foundry agent reads the message, checks its File Search index for relevant course material, and selects the right OpenAPI tool. No manual topic routing needed. Can chain multiple tools in a single conversation turn.
Foundry Agent (GPT-4o) β†’ OpenAPI Tools β†’ Azure Functions (HTTP POST)
3
Function resolves the student from the knowledge graph
Looks up the student in Cosmos DB Gremlin by email. Retrieves their mastery scores per topic, quiz history, and engagement level. Falls back to name matching if email case doesn't match.
Azure Functions β†’ Cosmos DB (Gremlin API)
4
AI does the heavy lifting
Depending on the endpoint: semantic search across 316 documents (tutor), adaptive question generation (quiz), photograph analysis via Vision (assess), or mastery aggregation (signals). All generation and reasoning handled by GPT-4o on Azure OpenAI.
Azure AI Search + Azure OpenAI (GPT-4o, Sweden Central)
5
Formatted response returned to Teams
Every endpoint returns a display_text field with clean, formatted output. No raw JSON. The Foundry agent weaves the response into a natural conversation with source citations. Students see a helpful response, not a data dump.
Azure Functions β†’ Foundry Agent β†’ Microsoft Teams
🧱

Microsoft Stack

Orchestration (v2)
Foundry Agent Service
GPT-4o agent with 11 OpenAPI tools, File Search (494 docs), and Code Interpreter. Intelligent routing replaces manual Topic configuration. Three-role system prompt (7,431 chars).
Orchestration (v1)
Copilot Studio
Natural language routing via 9 Topics with trigger phrases. Each fires an HTTP Request to Azure Functions. Shares the same Azure Functions backend as v2.
AI Model
Azure OpenAI (GPT-4o)
Sweden Central deployment. Tutoring, quiz generation, scoring, work assessment (Vision), study plans, curriculum narratives, and module generation. 25-second timeout per call.
Knowledge
Azure AI Search + Foundry Vector Store
494 documents indexed. AI Search (v1 RAG path) + Foundry File Search (v2 path). Lectures, transcripts, quiz banks, workshop problems, past exams.
Graph
Cosmos DB (Gremlin)
80 vertices, 167 edges. Students, topics, mastery estimates, prerequisites. Powers adaptive difficulty, progress tracking, early warning.
Compute
Azure Functions (Python)
35 functions, 30 HTTP endpoints, 5 timer triggers. Serverless, auto-scaling. Multi-course provisioning, cross-course intelligence, teacher portal with SSO auth, gradebook and teacher insights tabs, in-memory caching (1hr TTL), time budgets, and Azure Blob storage for generated module content.
Interface
Microsoft Teams
Zero new apps. Chat-native experience. Standalone bot + three static tabs: Course Admin, My Gradebook, Teacher Insights. Role-gated access. All UI surfaces use Teams dark purple palette.
Identity
Microsoft Graph + Entra ID
Two-identity model: infrastructure SP for Graph API + resource management, product app for bot auth + Teams SSO. Roster sync from Education API. Role-based access via class teacher membership + admin UPN whitelist.
Content
SharePoint
Source content library. Lecturers upload course materials, AI Search indexes automatically. No manual curation needed.

Platform Roadmap

v1
CohortAI v1 β€” Copilot Studio
Zero custom framework code. Copilot Studio for natural language understanding. AI Search for automatic content indexing. Cosmos DB Gremlin for student knowledge graphs. GPT-4o Vision for handwritten assessment. Every component is a managed Azure service.
Copilot StudioAzure OpenAIAI SearchCosmos DBAzure FunctionsGraph API
β†’
v2 βœ…
Foundry Agent Service β€” Deployed
LLM-powered Foundry agent replaces rigid Topic routing. One conversation spans tutoring β†’ quiz β†’ study plan. File Search over 494 documents. Code Interpreter for engineering calculations. Same backend, same graph β€” new brain, same body.
Foundry Agent ServiceFile Search (494 docs)Code InterpreterOpenAPI Tools (11)
v3 βœ…
Multi-Course Provisioning β€” Deployed
Upload a Course Outline PDF β†’ GPT-4o extracts curriculum structure β†’ auto-provisions M365 Team, Cosmos graph, AI Search index, and routing. Single Foundry agent serves all courses. Cross-course intelligence.
Course Outline ParserAuto-ProvisioningMulti-Course RoutingCross-Course Intelligence
β†’
v3.1 βœ…
Identity, Tabs & Theme β€” Deployed
Two-identity architecture with Teams SSO. Three static tabs: Course Admin, My Gradebook, Teacher Insights. Role-gated via Graph Education API. All dashboards rethemed to Teams dark purple palette. 35 functions, 30 endpoints, 5 timer triggers.
Teams SSORole-Based Access3 Static TabsTwo-Identity Model35 FunctionsDark Purple Theme