# EnCoach -- UTAS University Deployment Master Plan

**Document Version:** 1.0
**Date:** March 16, 2026
**Classification:** Confidential -- EnCoach & UTAS Internal
**Prepared by:** EnCoach Engineering Team

---

## Table of Contents

1. [Executive Summary](#1-executive-summary)
2. [Project Scope and Objectives](#2-project-scope-and-objectives)
3. [System Architecture](#3-system-architecture)
4. [Feature Modules Breakdown](#4-feature-modules-breakdown)
5. [Development Phases](#5-development-phases)
6. [University Integration Plan](#6-university-integration-plan)
7. [Master Timeline](#7-master-timeline)
8. [Testing and Rollout Strategy](#8-testing-and-rollout-strategy)
9. [Team and Responsibilities](#9-team-and-responsibilities)
10. [Risk Register](#10-risk-register)
11. [Assumptions and Prerequisites](#11-assumptions-and-prerequisites)

---

## 1. Executive Summary

EnCoach is deploying a comprehensive AI-powered education platform for the University of Technology and Applied Sciences (UTAS). The platform delivers nine integrated modules spanning self-paced English learning, AI-graded examinations, Mathematics and IT courses with AI-assisted assessment, a full Learning Management System, university SIS integration, institutional whitelabeling, AI virtual tutors, and a support ticketing system.

### Platform at a Glance

| Dimension | Detail |
|-----------|--------|
| **Modules** | 9 (English Self Learning, Examinations, Math, IT, LMS, Whitelabeling, Humanisation, SIS Integration, Ticketing) |
| **AI Services** | 6 (OpenAI GPT-4o, Whisper STT, AWS Polly TTS, ELAI Avatars, GPTZero Detection, FAISS Semantic Search) |
| **Backend** | Odoo 19 -- 15 custom modules, 70+ REST API endpoints, PostgreSQL |
| **Frontend** | React 18 SPA -- 55+ pages, TypeScript, Tailwind CSS, shadcn/ui |
| **LMS Engine** | OpenEduCat (Odoo-native modules) |
| **Team** | 1 Solution Architect, 1 Senior Developer (AI-assisted), 1 Full-Stack Developer (AI-assisted) |

### Key Milestones

| Milestone | Target Date |
|-----------|-------------|
| Project Kickoff | April 1, 2026 |
| Staging Demo to UTAS | April 24, 2026 |
| English Self Learning + Examinations -- GO LIVE | June 12, 2026 |
| Math + IT + LMS + Ticketing -- GO LIVE | July 24, 2026 |
| Full Platform GO LIVE (SIS, Whitelabeling, Humanisation) | August 21, 2026 |

### Current State of Development

The platform is not starting from zero. Significant engineering has already been completed:

- **Backend (Odoo 19):** 15 custom modules fully developed, covering exams, AI grading, content generation, media services, training, assignments, classrooms, subscriptions, registration, and ticketing. All AI services (OpenAI, Whisper, Polly, ELAI, GPTZero, FAISS) are integrated and configured. The backend is deployed and running on a staging server.
- **Frontend (React):** A complete UI prototype with 55+ pages across student, teacher, and admin portals. Role-based routing, layouts, and forms are built. Currently using mock data -- API integration is the primary remaining work.
- **Infrastructure:** Docker Compose deployment with PostgreSQL, staging environment operational at the current staging server.

---

## 2. Project Scope and Objectives

### 2.1 Objectives

1. **Deliver a production-ready AI-powered education platform** for UTAS covering English, Mathematics, and IT subjects.
2. **Integrate with UTAS's existing Student Information System (SIS)** for seamless student enrollment, grade sync, and attendance tracking.
3. **Provide institutional whitelabeling** with UTAS branding, colors, and identity.
4. **Deploy AI virtual tutors** (Humanisation) to enhance the student learning experience across subjects.
5. **Establish a scalable LMS** built on OpenEduCat for course management, timetabling, and academic administration.

### 2.2 Module Scope

| # | Module | Description | Acceptance Criteria |
|---|--------|-------------|---------------------|
| 1 | **English Self Learning** | AI-powered IELTS preparation: Reading, Listening, Writing, Speaking practice with AI grading, personalized training tips, and progress tracking. | Students can complete full practice sessions in all 4 skills; AI grading returns scores within 60 seconds; training tips are personalized to weaknesses. |
| 2 | **Examinations** | Full exam lifecycle: AI-generated exam content, timed exam sessions, automated grading, results dashboard, and teacher approval workflows. | Teachers can generate, review, and assign exams; students complete timed exams; grading is automated with band scores and feedback. |
| 3 | **Mathematics** | Math courses and AI-assisted exams: course content delivery, formula-based question generation, automated grading for numerical and short-answer responses. | Students access Math courses; AI generates Math questions at configurable difficulty levels; automated grading handles numerical and short-answer formats. |
| 4 | **Information Technology** | IT courses and AI-assisted exams: course content delivery, conceptual and practical question generation, automated grading for MCQ and short-answer formats. | Students access IT courses; AI generates IT questions across topics; automated grading covers MCQ, true/false, and short answers. |
| 5 | **LMS (OpenEduCat)** | Course management, enrollment, timetabling, attendance tracking, batch management, gradebook, and academic reporting via OpenEduCat Odoo modules. | Admin manages courses, batches, and timetables; teachers record attendance and grades; students view schedules and progress. |
| 6 | **Whitelabeling** | UTAS institutional branding: customizable logo, color palette, fonts, login screen, email templates, and report headers. | Platform displays UTAS branding throughout; branding is configurable via admin settings without code changes. |
| 7 | **Humanisation** | AI-powered virtual tutors using ELAI avatar technology: video-based tutoring, interactive speaking practice, and subject-specific AI guidance. | AI avatars present content and interact with students across subjects; avatar selection is available; videos generate within 2 minutes. |
| 8 | **SIS Integration** | Bidirectional integration with UTAS's existing Student Information System: student enrollment sync, grade export, attendance sync, and course catalog mapping. | Student data syncs from SIS to EnCoach on enrollment; grades and attendance export back to SIS; data is consistent within 15-minute sync cycles. |
| 9 | **Ticketing** | Support ticket system for students and staff: ticket creation, categorization, assignment, status tracking, and resolution workflow. | Users submit tickets; staff can categorize, assign, and resolve; status updates are visible to the reporter. |

### 2.3 Out of Scope (This Engagement)

- Mobile native applications (iOS/Android)
- Content creation for Math and IT courses (content to be provided by UTAS or generated via AI)
- UTAS internal network infrastructure changes
- Marketing website / landing page redesign
- Payment gateway integration for UTAS (institutional licensing assumed)

---

## 3. System Architecture

### 3.1 Architecture Overview

```mermaid
graph TB
    subgraph frontend ["Frontend Layer"]
        ReactApp["React 18 SPA<br/>TypeScript + Tailwind + shadcn/ui<br/>55+ pages, role-based routing"]
    end

    subgraph backend ["Backend Layer -- Odoo 19"]
        API["REST API Controllers<br/>70+ JSON endpoints"]
        Core["Core Modules<br/>Users, Entities, Roles, Permissions"]
        Exam["Exam Engine<br/>Reading, Listening, Writing, Speaking, Level"]
        LMS["OpenEduCat LMS<br/>Courses, Batches, Timetable, Attendance"]
        AI["AI Modules<br/>Generation, Grading, Media, Training"]
        Sub["Business Modules<br/>Subscriptions, Tickets, Registration"]
    end

    subgraph aiServices ["AI Services"]
        GPT["OpenAI GPT-4o<br/>Content Generation + Grading"]
        Whisper["OpenAI Whisper<br/>Speech-to-Text (local)"]
        Polly["AWS Polly<br/>Text-to-Speech (neural)"]
        ELAI["ELAI<br/>AI Avatar Video"]
        GPTZero["GPTZero<br/>AI Writing Detection"]
        FAISS["FAISS + SentenceTransformers<br/>Semantic Search"]
    end

    subgraph dataLayer ["Data Layer"]
        PG["PostgreSQL 16"]
    end

    subgraph external ["External Systems"]
        SIS["UTAS SIS<br/>Student Information System"]
    end

    ReactApp -->|"JWT Auth + REST API"| API
    API --> Core
    API --> Exam
    API --> LMS
    API --> AI
    API --> Sub
    AI --> GPT
    AI --> Whisper
    AI --> Polly
    AI --> ELAI
    AI --> GPTZero
    AI --> FAISS
    Core --> PG
    Exam --> PG
    LMS --> PG
    Sub --> PG
    API <-->|"REST API Sync"| SIS
```

### 3.2 Technology Stack

| Layer | Technology | Details |
|-------|-----------|---------|
| **Frontend** | React 18, TypeScript, Vite 5 | SPA with TanStack Query, React Router v6, Zod validation |
| **UI Framework** | shadcn/ui, Tailwind CSS | Radix UI primitives, responsive design, dark mode capable |
| **Backend** | Odoo 19, Python 3.11 | 15 custom modules, ORM-based data access, background job processing |
| **Database** | PostgreSQL 16 | Odoo-managed schema, full-text search, JSONB for flexible data |
| **LMS** | OpenEduCat | Odoo-native education modules: courses, batches, attendance, timetable |
| **AI -- Text Generation** | OpenAI GPT-4o, GPT-3.5-turbo | Exam content generation, grading, evaluation, training tips |
| **AI -- Speech-to-Text** | OpenAI Whisper (local, base model) | 4 instances, round-robin, 30s chunked transcription |
| **AI -- Text-to-Speech** | AWS Polly (Neural) | 11 English voices, MP3 output, sentence-boundary chunking |
| **AI -- Video** | ELAI | 7 AI avatars (male/female), ElevenLabs + Azure voices |
| **AI -- Detection** | GPTZero | AI-generated writing detection per submission |
| **AI -- Search** | FAISS + all-MiniLM-L6-v2 | Semantic similarity search over training tips knowledge base |
| **Deployment** | Docker Compose | Odoo + PostgreSQL containers, Nginx reverse proxy |
| **Version Control** | Gitea | Private repositories for frontend and backend |

### 3.3 Deployment Architecture

```mermaid
graph LR
    subgraph production ["Production Server"]
        Nginx["Nginx<br/>Reverse Proxy<br/>SSL Termination"]
        FrontendContainer["Frontend Container<br/>React SPA<br/>Port 3000"]
        OdooContainer["Odoo 19 Container<br/>Python 3.11<br/>Port 8069"]
        DBContainer["PostgreSQL 16<br/>Port 5432"]
    end

    Browser["Browser"] -->|"HTTPS"| Nginx
    Nginx -->|"/app/*"| FrontendContainer
    Nginx -->|"/api/*"| OdooContainer
    OdooContainer --> DBContainer
    FrontendContainer -->|"REST API"| OdooContainer
```

### 3.4 Existing Assets Inventory

| Asset | Count | Status |
|-------|-------|--------|
| Odoo custom modules | 15 | Deployed on staging |
| Backend REST API endpoints | 70+ | Functional, English/IELTS focused |
| Frontend pages (React) | 55+ | UI complete, mock data only |
| AI service integrations | 6 | Configured and tested |
| ELAI avatar profiles | 7 | Seeded in database |
| Training tips (FAISS) | 80 | Imported with embeddings |
| Odoo data models | 20+ | Schema deployed |

---

## 4. Feature Modules Breakdown

### 4.1 English Self Learning

| Aspect | Detail |
|--------|--------|
| **Current State** | Backend complete: AI-powered generation for Reading, Listening, Writing, Speaking. Grading via GPT-4o with IELTS rubric. Polly TTS for listening audio. ELAI avatars for speaking. FAISS-based personalized training tips. Frontend UI built (mocked). |
| **Work Required** | Replace mock authentication with Odoo JWT. Wire all student-facing pages to backend APIs. Integrate AI grading display (scores, feedback, AI detection). Connect training/tips module. |
| **Dependencies** | Stable Odoo API (Phase 1 complete). Frontend auth working. |
| **Effort** | 6 person-weeks |
| **Risk** | Low -- both backend and frontend exist; integration is the main task. |

### 4.2 Examinations

| Aspect | Detail |
|--------|--------|
| **Current State** | Backend complete: exam CRUD, 5 module types (reading, listening, writing, speaking, level), AI generation endpoints, approval workflows. Frontend: exam editor, exam list, generation page, approval workflows (all mocked). |
| **Work Required** | Wire admin exam management pages to APIs. Connect AI generation UI to real endpoints. Implement exam-taking flow with timer and state persistence. Connect grading pipeline and results display. |
| **Dependencies** | English Self Learning module (shared components). |
| **Effort** | Included in English Self Learning estimate (shared codebase). |
| **Risk** | Low -- core exam engine is proven. |

### 4.3 Mathematics

| Aspect | Detail |
|--------|--------|
| **Current State** | No backend module exists. No frontend pages exist. The AI exam engine (GPT-based generation + grading) provides a reusable foundation. |
| **Work Required** | **Backend:** Create `encoach_math` Odoo module with Math-specific exam models, AI prompt templates for formula-based questions, numerical grading logic, and multi-format question types (MCQ, fill-in, short answer, calculation). **Frontend:** Create Math course pages, Math exam taking interface with formula rendering (KaTeX/MathJax), Math-specific grading display. |
| **Dependencies** | Core exam engine must be stable. AI prompts require testing with GPT-4o for mathematical accuracy. |
| **Effort** | 5 person-weeks |
| **Risk** | Medium -- AI generation of math questions requires careful prompt engineering for accuracy. Formula rendering on frontend adds complexity. |

### 4.4 Information Technology

| Aspect | Detail |
|--------|--------|
| **Current State** | No backend module exists. No frontend pages exist. Similar to Math, the exam engine provides a foundation. |
| **Work Required** | **Backend:** Create `encoach_it` Odoo module with IT-specific exam models, AI prompt templates for conceptual and practical IT questions (networking, databases, programming concepts, security), grading logic for MCQ and short-answer. **Frontend:** Create IT course pages, IT exam interface, IT-specific grading display. |
| **Dependencies** | Core exam engine must be stable. |
| **Effort** | 4 person-weeks |
| **Risk** | Low-Medium -- IT subjects are text-based (no formula complexity). AI generation of IT questions is straightforward with GPT-4o. |

### 4.5 LMS (OpenEduCat)

| Aspect | Detail |
|--------|--------|
| **Current State** | OpenEduCat modules will be provided and installed into Odoo 19. Frontend LMS pages exist and are fully built: student dashboard, courses, course detail, assignments, grades, attendance, timetable (student); courses, course builder, assignments, attendance, students, timetable (teacher); dashboard, courses, students, teachers, batches, batch detail, timetable, reports, settings (admin). All pages use mock data. |
| **Work Required** | **Backend:** Install OpenEduCat modules. Create REST API controller layer (`encoach_lms_api`) to expose OpenEduCat models as JSON endpoints matching the frontend's data expectations. Map OpenEduCat models to frontend data interfaces (Course, Module, Lesson, Batch, Timetable, Attendance, Grade). **Frontend:** Replace mock data imports with API calls using TanStack Query. Wire forms to create/update APIs. |
| **Dependencies** | OpenEduCat modules provided and compatible with Odoo 19. |
| **Effort** | 3 person-weeks |
| **Risk** | Medium -- OpenEduCat model compatibility with Odoo 19 must be verified. API mapping between OpenEduCat's data structures and the frontend's interfaces requires careful alignment. |

### 4.6 Whitelabeling

| Aspect | Detail |
|--------|--------|
| **Current State** | No whitelabeling support. Frontend uses CSS variables for theming (Tailwind + shadcn/ui) with `darkMode: ["class"]` configured but not activated. No branding configuration. |
| **Work Required** | **Backend:** Create `encoach_branding` model in Odoo for tenant branding settings (logo, primary color, secondary color, font, favicon, login background, email header). Expose branding API endpoint. **Frontend:** Create a branding provider that fetches configuration on app load and applies CSS variables dynamically. Configure logo, colors, and fonts from API. Add admin UI for branding management. |
| **Dependencies** | UTAS provides brand assets (logo, color palette, fonts). |
| **Effort** | 2 person-weeks |
| **Risk** | Low -- CSS variable-based theming is well-established. |

### 4.7 Humanisation (AI Virtual Tutors)

| Aspect | Detail |
|--------|--------|
| **Current State** | ELAI integration exists for speaking exam avatar videos. 7 avatars configured (Gia, Vadim, Orhan, Flora, Scarlett, Parker, Ethan) with ElevenLabs and Azure voices. Currently limited to presenting speaking exam questions. |
| **Work Required** | **Backend:** Extend ELAI integration to support tutoring mode -- avatars explain concepts, provide feedback narration, and guide students through exercises. Create endpoints for on-demand tutoring video generation per subject. **Frontend:** Build tutor interaction UI -- avatar selector, video player with synchronized content, interactive Q&A flow. Integrate across English, Math, and IT modules. |
| **Dependencies** | ELAI API capacity and cost model for increased video generation. Subject-specific scripts/prompts. |
| **Effort** | 3 person-weeks |
| **Risk** | Medium -- ELAI video generation time (1-3 minutes per video) affects real-time tutoring UX. Cost scales with usage. |

### 4.8 SIS Integration

| Aspect | Detail |
|--------|--------|
| **Current State** | No SIS integration exists. UTAS has an existing Student Information System that we must integrate with via API. |
| **Work Required** | **Discovery:** Obtain UTAS SIS API documentation, authentication method, and data schemas. **Backend:** Create `encoach_sis` Odoo module with SIS sync models, scheduled sync jobs (cron), and conflict resolution. Implement: student enrollment import, grade export, attendance sync, course catalog mapping. **Frontend:** SIS sync status dashboard for admin. Sync logs and error reporting. |
| **Dependencies** | UTAS provides SIS API documentation, test environment access, and a technical contact. |
| **Effort** | 4 person-weeks |
| **Risk** | High -- entirely dependent on UTAS SIS API quality, documentation completeness, and test environment availability. This is the single highest-risk module. |

### 4.9 Ticketing

| Aspect | Detail |
|--------|--------|
| **Current State** | Backend complete: `encoach_ticket` Odoo module with full CRUD, categorization, and status workflow. API endpoints exist (`/api/tickets`). Frontend: Tickets page exists in admin portal (mocked). |
| **Work Required** | Wire frontend tickets page to backend API. Add ticket creation flow for students and teachers. Add ticket assignment and resolution workflow for admin. |
| **Dependencies** | None -- self-contained module. |
| **Effort** | 1 person-week |
| **Risk** | Low -- both backend and frontend exist. |

### 4.10 Effort Summary

| Module | Person-Weeks | Wave |
|--------|-------------|------|
| English Self Learning + Examinations | 6 | Wave 1 |
| Mathematics | 5 | Wave 2 |
| Information Technology | 4 | Wave 2 |
| LMS (OpenEduCat) | 3 | Wave 2 |
| Ticketing | 1 | Wave 2 |
| Whitelabeling | 2 | Wave 3 |
| Humanisation | 3 | Wave 3 |
| SIS Integration | 4 | Wave 3 |
| **Total** | **28 person-weeks** | |

With a team of 3 producing approximately 3 person-weeks per calendar week, the raw work is approximately 9-10 calendar weeks. Adding UAT cycles, amendments, and buffer, the overall calendar duration is 20 weeks (April 1 -- August 21).

---

## 5. Development Phases

The project is structured into three overlapping waves. Each wave follows a build-test-deploy cycle and produces a production-ready deliverable.

### 5.1 Wave 1 -- Foundation (April 1 -- June 12)

**Goal:** English Self Learning and Examinations modules live in production with real UTAS users.

This wave transforms the existing backend and frontend from separate prototypes into an integrated, production-ready platform.

#### Sprint Breakdown

| Sprint | Dates | Focus | Deliverables |
|--------|-------|-------|-------------|
| **S1** | Apr 1-11 | **Stabilization & Auth** | Fix remaining backend bugs. Replace mock auth with Odoo JWT in React frontend. Set up API service layer. Configure production deployment pipeline. | 
| **S2** | Apr 12-18 | **Core API Integration** | Wire student dashboard, courses, and profile pages. Implement exam list and exam detail APIs. Connect user management and entity management. |
| **S3** | Apr 19-25 | **Exam Engine Integration** | Wire exam-taking flow (reading, listening, writing, speaking). Connect AI generation endpoints to exam editor. Integrate timer, state persistence, and submission. **Staging demo to UTAS (Apr 24-25).** |
| **S4** | Apr 26 -- May 9 | **AI Features & Grading** | Wire AI grading pipeline (writing evaluation, speaking evaluation). Connect TTS audio playback. Connect ELAI avatar videos. Integrate training tips and personalized recommendations. Connect AI detection display. |
| **S5** | May 10-23 | **UAT Round 1** | Deploy to UTAS staging. Conduct UAT with UTAS staff and selected students. Collect feedback. Bug fixes and amendments. |
| **S6** | May 24 -- Jun 6 | **UAT Round 2 & Hardening** | Address UAT feedback. Performance optimization. Security review. Documentation. |
| **S7** | Jun 7-12 | **GO LIVE** | Production deployment. Monitoring setup. Handover to UTAS for English + Examinations. Post-launch support begins. |

#### Wave 1 Exit Criteria

- Students can register, log in, and complete full English practice sessions
- AI grading returns accurate band scores with detailed feedback for writing and speaking
- Teachers can generate, review, approve, and assign exams
- Admin can manage users, entities, classrooms, and assignments
- Training tips are personalized based on exam performance
- Platform is stable under expected UTAS load

### 5.2 Wave 2 -- Expansion (May 17 -- July 24)

**Goal:** Mathematics, Information Technology, LMS, and Ticketing modules live in production.

Wave 2 begins during Wave 1's UAT phase, leveraging developers freed from active feature work.

#### Sprint Breakdown

| Sprint | Dates | Focus | Deliverables |
|--------|-------|-------|-------------|
| **S8** | May 17-30 | **Math & IT Backend** | Create `encoach_math` and `encoach_it` Odoo modules. Develop AI prompt templates for Math question generation (numerical, formula-based, word problems). Develop AI prompt templates for IT questions (conceptual, practical). Implement grading logic for non-essay formats. |
| **S9** | May 31 -- Jun 13 | **OpenEduCat & LMS API** | Install and configure OpenEduCat modules in Odoo 19. Create `encoach_lms_api` controller layer. Map OpenEduCat models to frontend data interfaces. Wire LMS admin pages (courses, batches, timetable, attendance). |
| **S10** | Jun 14-27 | **Math & IT Frontend + LMS Wiring** | Build Math exam interface with formula rendering. Build IT exam interface. Wire student and teacher LMS pages. Wire ticketing module. |
| **S11** | Jun 28 -- Jul 11 | **UAT Round 1** | Deploy Math, IT, LMS, Ticketing to staging. UAT with UTAS staff. Math AI accuracy testing. LMS workflow validation. |
| **S12** | Jul 12-18 | **Amendments** | Address UAT feedback. Fix Math/IT grading edge cases. LMS refinements. |
| **S13** | Jul 19-24 | **GO LIVE** | Production deployment of Math, IT, LMS, Ticketing. Post-launch support begins. |

#### Wave 2 Exit Criteria

- Math and IT exams generate accurately via AI with appropriate difficulty levels
- LMS (OpenEduCat) fully functional: courses, enrollment, attendance, timetable, gradebook
- Ticketing system operational for students and staff
- All modules integrated with Wave 1 platform (single sign-on, unified navigation)

### 5.3 Wave 3 -- Integration (July 1 -- August 21)

**Goal:** Whitelabeling, SIS integration, and Humanisation modules complete. Full platform go-live.

Wave 3 begins during Wave 2's frontend phase, with SIS discovery starting earlier.

#### Sprint Breakdown

| Sprint | Dates | Focus | Deliverables |
|--------|-------|-------|-------------|
| **S14** | Jul 1-11 | **Whitelabeling + SIS Discovery** | Implement branding configuration backend and frontend. Apply UTAS brand assets. Begin SIS API discovery and documentation review with UTAS IT team. |
| **S15** | Jul 12-25 | **SIS Integration Development** | Build `encoach_sis` Odoo module. Implement student enrollment import. Implement grade export. Implement attendance sync. Build admin SIS dashboard. |
| **S16** | Jul 26 -- Aug 1 | **Humanisation** | Extend ELAI integration for tutoring mode. Build tutor interaction UI. Generate subject-specific avatar tutoring content. |
| **S17** | Aug 2-8 | **Integration Testing** | End-to-end testing of all 9 modules together. SIS sync validation with UTAS test data. Performance testing under load. Security audit. |
| **S18** | Aug 9-15 | **Final UAT** | Full platform UAT with UTAS. All modules tested together. Final amendments. |
| **S19** | Aug 16-21 | **Full Platform GO LIVE** | Production deployment of complete platform. All 9 modules active. Monitoring and support in place. |

#### Wave 3 Exit Criteria

- Platform displays UTAS branding throughout
- SIS syncs student enrollment, grades, and attendance bidirectionally
- AI virtual tutors available across English, Math, and IT
- All 9 modules function as an integrated platform
- Performance meets production requirements under expected load

---

## 6. University Integration Plan

### 6.1 Integration Architecture

```mermaid
sequenceDiagram
    participant SIS as UTAS SIS
    participant Odoo as EnCoach Odoo 19
    participant React as EnCoach Frontend
    participant Student as Student

    Note over SIS,Odoo: Enrollment Sync (SIS → EnCoach)
    SIS->>Odoo: Student enrollment data (scheduled sync)
    Odoo->>Odoo: Create/update student records
    Odoo->>Odoo: Assign to courses and batches

    Note over Student,React: Daily Usage
    Student->>React: Login, take courses, complete exams
    React->>Odoo: API calls (exam, grading, attendance)
    Odoo->>Odoo: Record grades, attendance, progress

    Note over Odoo,SIS: Grade & Attendance Export (EnCoach → SIS)
    Odoo->>SIS: Grade export (scheduled sync)
    Odoo->>SIS: Attendance export (scheduled sync)
```

### 6.2 Data Exchange Specification

| Data Flow | Direction | Frequency | Format |
|-----------|-----------|-----------|--------|
| Student enrollment | SIS → EnCoach | On enrollment + daily sync | REST API / CSV import |
| Course catalog mapping | Bidirectional | On setup + manual sync | REST API |
| Exam grades | EnCoach → SIS | After grading + daily batch | REST API |
| Attendance records | EnCoach → SIS | End of day batch | REST API |
| Student status changes | SIS → EnCoach | Real-time webhook or daily | REST API |

### 6.3 Authentication Strategy

| Phase | Method | Detail |
|-------|--------|--------|
| **Initial (Wave 1-2)** | Odoo-native JWT | Students and staff authenticate directly with EnCoach. Credentials provisioned from SIS enrollment data. |
| **Full Integration (Wave 3)** | SSO via SAML/OAuth | If UTAS SIS supports SSO, students authenticate once at UTAS portal and access EnCoach seamlessly. Fallback to JWT if SSO is not available. |

### 6.4 UTAS Responsibilities for Integration

| Deliverable | Required By | Impact if Delayed |
|-------------|-------------|-------------------|
| SIS API documentation | June 15, 2026 | Blocks SIS module development; delays Wave 3 by equivalent duration |
| SIS test environment access | July 1, 2026 | Blocks integration testing |
| SIS technical contact (dedicated) | June 15, 2026 | Slows discovery and issue resolution |
| Brand assets (logo, colors, fonts) | June 15, 2026 | Blocks whitelabeling completion |
| UAT testers (3-5 staff, 10-20 students) | May 1, 2026 | Delays UAT cycles; risks quality |
| Math and IT course content (if not AI-generated) | May 15, 2026 | Delays Math/IT module population |
| Production server provisioning | August 1, 2026 | Blocks production deployment |

---

## 7. Master Timeline

### 7.1 Gantt Chart

```mermaid
gantt
    title EnCoach UTAS Deployment -- Master Timeline
    dateFormat YYYY-MM-DD
    axisFormat %d %b

    section Wave1_Foundation
    S1_Stabilize_Auth              :s1, 2026-04-01, 11d
    S2_Core_API_Integration        :s2, 2026-04-12, 7d
    S3_Exam_Engine_Integration     :s3, 2026-04-19, 7d
    UTAS_Staging_Demo              :milestone, m1, 2026-04-24, 0d
    S4_AI_Features_Grading         :s4, 2026-04-26, 14d
    S5_UAT_Round_1                 :s5, 2026-05-10, 14d
    S6_UAT_Round_2_Hardening       :s6, 2026-05-24, 14d
    S7_English_Exams_GO_LIVE       :s7, 2026-06-07, 5d
    English_Exams_LIVE             :milestone, m2, 2026-06-12, 0d

    section Wave2_Expansion
    S8_Math_IT_Backend             :s8, 2026-05-17, 14d
    S9_OpenEduCat_LMS_API          :s9, 2026-05-31, 14d
    S10_Math_IT_LMS_Frontend       :s10, 2026-06-14, 14d
    S11_UAT_Math_IT_LMS            :s11, 2026-06-28, 14d
    S12_Amendments                 :s12, 2026-07-12, 7d
    S13_Math_IT_LMS_GO_LIVE        :s13, 2026-07-19, 5d
    Math_IT_LMS_LIVE               :milestone, m3, 2026-07-24, 0d

    section Wave3_Integration
    S14_Whitelabeling_SIS_Discovery :s14, 2026-07-01, 11d
    S15_SIS_Integration            :s15, 2026-07-12, 14d
    S16_Humanisation               :s16, 2026-07-26, 7d
    S17_Integration_Testing        :s17, 2026-08-02, 7d
    S18_Final_UAT                  :s18, 2026-08-09, 7d
    S19_Full_Platform_GO_LIVE      :s19, 2026-08-16, 5d
    Full_Platform_LIVE             :milestone, m4, 2026-08-21, 0d

    section PostLaunch
    Post_Launch_Support            :pls, 2026-08-21, 30d
```

### 7.2 Key Milestones

| # | Milestone | Date | Gate Criteria |
|---|-----------|------|---------------|
| M0 | Project Kickoff | April 1, 2026 | Team assembled, scope agreed, environments ready |
| M1 | UTAS Staging Demo | April 24, 2026 | English + Exams functional on staging, basic end-to-end flow |
| M2 | Wave 1 GO LIVE | June 12, 2026 | English Self Learning + Examinations in production, 2 UAT rounds passed |
| M3 | Wave 2 GO LIVE | July 24, 2026 | Math + IT + LMS + Ticketing in production, UAT passed |
| M4 | Full Platform GO LIVE | August 21, 2026 | All 9 modules in production, SIS integration validated, full UAT passed |
| M5 | Post-Launch Support Ends | September 21, 2026 | 30-day support period complete, handover documentation delivered |

### 7.3 Critical Path

The critical path runs through:

1. **Wave 1 auth stabilization** (blocks all frontend work)
2. **Wave 1 API integration** (blocks UAT and all subsequent waves)
3. **UTAS SIS API documentation delivery** (blocks Wave 3 SIS development)
4. **OpenEduCat module compatibility** (blocks LMS development)

Any delay on items 1-2 cascades through the entire timeline. Items 3-4 are external dependencies that must be tracked proactively.

---

## 8. Testing and Rollout Strategy

### 8.1 Testing Stages

```mermaid
graph LR
    Dev["Developer Testing<br/>Unit + Integration<br/>Continuous"] --> Staging["Staging<br/>System Integration<br/>Per Sprint"]
    Staging --> UAT["UAT with UTAS<br/>Acceptance<br/>Per Wave"]
    UAT --> Perf["Performance Testing<br/>Load + Stress<br/>Pre-Go-Live"]
    Perf --> Security["Security Audit<br/>OWASP Top 10<br/>Pre-Go-Live"]
    Security --> GoLive["GO LIVE<br/>Production<br/>Per Wave"]
```

| Stage | Who | When | Scope |
|-------|-----|------|-------|
| **Developer Testing** | EnCoach dev team | Continuous | Unit tests, API integration tests, manual smoke tests per feature |
| **Staging Deployment** | EnCoach dev team | End of each sprint | Full platform on staging server, regression testing, cross-module integration |
| **UAT (User Acceptance)** | UTAS staff + students | 2 rounds per wave | Guided test scenarios, real-world usage, feedback collection |
| **Performance Testing** | EnCoach dev team | Before each go-live | Concurrent user simulation (target: 200 simultaneous users), API response times (<2s for standard, <60s for AI grading) |
| **Security Audit** | EnCoach architect | Before production go-live | Authentication review, authorization checks, API input validation, OWASP Top 10 |

### 8.2 UAT Process

Each wave includes two UAT rounds:

**UAT Round 1 (2 weeks):**
1. EnCoach deploys to staging environment
2. UTAS UAT team receives test accounts and test scenarios document
3. UTAS testers execute scenarios and log issues via shared tracking system
4. EnCoach triages issues daily (critical = same day, high = 2 days, medium = next sprint)
5. Weekly status call between EnCoach and UTAS

**UAT Round 2 (2 weeks):**
1. All critical and high issues from Round 1 resolved
2. Re-test of failed scenarios
3. Exploratory testing by UTAS testers
4. Go-live readiness assessment
5. Sign-off by UTAS project lead

### 8.3 Go-Live Checklist (Per Wave)

| # | Item | Owner |
|---|------|-------|
| 1 | All critical and high UAT issues resolved | EnCoach |
| 2 | Performance tests pass (response time, concurrent users) | EnCoach |
| 3 | Security audit complete, no critical findings | EnCoach |
| 4 | Production environment provisioned and configured | EnCoach + UTAS IT |
| 5 | DNS / domain configured (if applicable) | UTAS IT |
| 6 | SSL certificate installed | EnCoach + UTAS IT |
| 7 | Database backup and restore procedure tested | EnCoach |
| 8 | Monitoring and alerting configured | EnCoach |
| 9 | Rollback procedure documented and tested | EnCoach |
| 10 | UTAS project lead sign-off | UTAS |

### 8.4 Rollback Plan

Each go-live deployment includes a documented rollback procedure:

1. **Database snapshot** taken immediately before production deployment
2. **Previous container images** tagged and retained (minimum 3 previous versions)
3. **Rollback trigger criteria:** >5% error rate, >10s average response time, data integrity issue
4. **Rollback execution time:** <15 minutes (Docker image swap + database restore)
5. **Communication:** UTAS IT notified within 5 minutes of rollback decision

### 8.5 Post-Launch Support

| Period | Coverage | Scope |
|--------|----------|-------|
| Week 1-2 after each go-live | Daily monitoring, same-day critical fixes | Bug fixes, performance tuning, user support |
| Week 3-4 after each go-live | Standard monitoring, 2-day response for non-critical | Bug fixes, minor enhancements from feedback |
| After Full Platform GO LIVE | 30-day support period (Aug 21 -- Sep 21) | Full platform support, knowledge transfer to UTAS IT |

---

## 9. Team and Responsibilities

### 9.1 EnCoach Team

| Role | Responsibilities |
|------|-----------------|
| **Solution Architect** | System architecture decisions. University integration design. SIS API mapping. Security and performance oversight. Code review. UTAS stakeholder communication. Sprint planning. |
| **Senior Developer (AI-assisted)** | Backend development (Odoo modules). AI service integration. Math/IT module AI prompts. SIS integration implementation. Database design. API development. |
| **Full-Stack Developer (AI-assisted)** | Frontend development (React). API integration. UI/UX implementation. Whitelabeling. LMS frontend wiring. Testing. |

### 9.2 UTAS Responsibilities

| Role | Responsibilities |
|------|-----------------|
| **Project Sponsor** | Budget approval. Strategic decisions. Escalation resolution. |
| **Project Lead** | Scope sign-off. UAT coordination. Go-live approval. Weekly status reviews. |
| **IT Department** | SIS API documentation and test environment. Production server provisioning. Network and DNS configuration. SSL certificates. |
| **Subject Matter Experts** | Math and IT course content review. Exam quality validation. Training content verification. |
| **UAT Testers (3-5 staff, 10-20 students)** | Execute test scenarios. Log issues and feedback. Re-test after fixes. |

### 9.3 Communication Plan

| Activity | Frequency | Participants | Medium |
|----------|-----------|-------------|--------|
| Sprint status report | Weekly (Friday) | EnCoach team → UTAS Project Lead | Email + document |
| Demo / walkthrough | Bi-weekly | EnCoach team + UTAS stakeholders | Video call + screen share |
| UAT feedback review | Daily during UAT | EnCoach team + UTAS testers | Shared issue tracker |
| Escalation call | As needed | Architect + UTAS Project Lead | Video call |
| Go-live readiness review | Before each go-live | All stakeholders | Meeting |

### 9.4 Escalation Path

```
Level 1: Developer → Solution Architect (same day)
Level 2: Solution Architect → UTAS Project Lead (1 business day)
Level 3: UTAS Project Lead → UTAS Project Sponsor (2 business days)
```

---

## 10. Risk Register

| # | Risk | Probability | Impact | Mitigation |
|---|------|------------|--------|------------|
| R1 | **UTAS SIS API documentation delayed or incomplete** | High | High | Begin SIS discovery in Wave 2 (early July). Prepare alternative sync methods (CSV import/export) as fallback. Weekly check-ins with UTAS IT from June onwards. |
| R2 | **Math AI question generation inaccuracy** | Medium | Medium | Invest in thorough prompt engineering with GPT-4o. Build validation test suite with known-correct Math problems. Include human review step in exam approval workflow. |
| R3 | **OpenEduCat incompatibility with Odoo 19** | Medium | High | Test OpenEduCat installation early (Sprint S9). Identify compatibility issues before committing to LMS frontend work. Fallback: build minimal LMS models within existing Odoo modules. |
| R4 | **Frontend API integration slower than estimated** | Medium | Medium | Prioritize critical paths (auth, core pages) first. Use API contract testing to parallelize frontend and backend work. Leverage AI coding assistants to accelerate repetitive wiring. |
| R5 | **Team bandwidth constraints** | Medium | High | AI-assisted development (both developers use AI tools) effectively increases output by 1.5-2x. Strict scope management -- no feature creep. Clear sprint goals with daily standups. |
| R6 | **ELAI video generation latency for Humanisation** | Low | Medium | Pre-generate common tutoring videos. Cache frequently requested content. Set user expectations (1-3 min generation time). Consider alternative: pre-recorded avatar videos for standard content. |
| R7 | **Production infrastructure not ready on time** | Low | High | Request production server provisioning by August 1 (3 weeks before go-live). Test deployment procedure on staging first. Have cloud-based fallback plan. |
| R8 | **UTAS UAT testers unavailable or insufficient feedback** | Medium | Medium | Provide detailed test scenarios with step-by-step instructions. Offer guided UAT sessions. Establish minimum UAT participation requirements in the scope agreement. |

---

## 11. Assumptions and Prerequisites

### 11.1 Assumptions

| # | Assumption | Impact if Invalid |
|---|-----------|-------------------|
| A1 | UTAS provides 3-5 staff and 10-20 students for UAT testing | Delays UAT; reduces quality assurance |
| A2 | OpenEduCat modules are compatible with Odoo 19 | Requires building custom LMS models; adds 3-4 weeks |
| A3 | UTAS SIS exposes REST APIs for enrollment, grades, and attendance | Requires alternative integration (CSV, database sync); adds 2-3 weeks |
| A4 | Math and IT course content is either provided by UTAS or generated by AI | If neither, course content creation becomes a separate workstream |
| A5 | The platform will be accessed via web browsers only (no mobile app) | Mobile app would be a separate project |
| A6 | Institutional licensing model (no per-student payment processing) | Payment gateway integration would add 2-3 weeks |
| A7 | Single UTAS deployment (not multi-university / multi-tenant initially) | Multi-tenant support would add architectural complexity |
| A8 | Internet connectivity at UTAS is sufficient for AI cloud services (OpenAI, ELAI, AWS Polly) | On-premise AI deployment would be a separate project |

### 11.2 Prerequisites (with Deadlines)

| # | Prerequisite | Owner | Deadline | Status |
|---|-------------|-------|----------|--------|
| P1 | Scope agreement signed | UTAS + EnCoach | March 31, 2026 | Pending |
| P2 | OpenEduCat modules provided | EnCoach / UTAS | May 15, 2026 | Pending |
| P3 | UTAS brand assets delivered | UTAS | June 15, 2026 | Pending |
| P4 | SIS API documentation provided | UTAS IT | June 15, 2026 | Pending |
| P5 | SIS test environment access granted | UTAS IT | July 1, 2026 | Pending |
| P6 | UAT test team identified | UTAS | May 1, 2026 | Pending |
| P7 | Production server provisioned | UTAS IT / EnCoach | August 1, 2026 | Pending |
| P8 | Math/IT course content available | UTAS SMEs | May 15, 2026 | Pending |

---

## Appendix A: Module-to-API Mapping (Existing Backend Endpoints)

The following 70+ API endpoints are already built and deployed in the Odoo 19 backend. These form the foundation for Wave 1 frontend integration.

| Category | Endpoints | Count |
|----------|-----------|-------|
| Authentication | `/api/login`, `/api/logout`, `/api/reset`, `/api/reset/sendVerification` | 4 |
| Users | `/api/user`, `/api/users/update`, `/api/users/list`, `/api/users/<id>` | 4 |
| Entities & Roles | `/api/entities`, `/api/roles`, `/api/permissions` | 7 |
| Exams | `/api/exam`, `/api/exam/<module>`, `/api/exam/<module>/<id>`, `/api/exam/avatars` | 7 |
| AI Generation | `/api/exam/reading/*`, `/api/exam/listening/*`, `/api/exam/writing/*`, `/api/exam/speaking/*`, `/api/exam/level/generate` | 8 |
| Media | `/api/exam/listening/media`, `/api/exam/listening/transcribe`, `/api/exam/speaking/media`, `/api/transcribe` | 6 |
| Evaluations & Grading | `/api/evaluate/writing`, `/api/evaluate/speaking`, `/api/evaluate/interactiveSpeaking`, `/api/grading/multiple` | 6 |
| Classrooms | `/api/groups`, `/api/groups/<id>` | 3 |
| Assignments | `/api/assignments`, `/api/assignments/<id>`, `/api/assignments/<id>/start`, release, archive | 8 |
| Sessions & Stats | `/api/sessions`, `/api/stats`, `/api/statistical` | 5 |
| Training | `/api/training`, `/api/training/<id>`, `/api/training/tips`, `/api/training/walkthrough` | 4 |
| Subscriptions | `/api/packages`, `/api/stripe`, `/api/paypal`, `/api/paymob` + webhooks | 7 |
| Registration | `/api/register`, `/api/code/<code>`, `/api/batch_users`, `/api/make_user` | 4 |
| Tickets | `/api/tickets`, `/api/tickets/<id>` | 3 |
| Storage | `/api/storage`, `/api/storage/delete` | 2 |
| Approvals | `/api/approval-workflows`, `/api/approval-workflows/<id>` | 3 |
| **Total** | | **~81** |

---

## Appendix B: AI Service Configuration Summary

| Service | Model | Key Config | Usage |
|---------|-------|-----------|-------|
| OpenAI GPT | gpt-4o (primary), gpt-3.5-turbo (secondary) | Temperature: 0.1 (grading), 0.7 (generation), 0.2 (summaries). Max tokens: 4,097. JSON response format. | Exam generation, grading, evaluation, training tips |
| Whisper | base (local, ~1GB) | 4 instances, round-robin, 16kHz mono, 30s chunks with overlap | Speaking transcription, audio-to-text |
| AWS Polly | Neural engine | 11 voices, MP3 output, 3,000 char chunks | Listening exam audio generation |
| ELAI | 7 avatars | ElevenLabs + Azure voices, fade_in animation | Speaking exam video, virtual tutoring |
| GPTZero | v2/predict/text | Per-sentence analysis, confidence scoring | Writing AI detection |
| FAISS | IndexFlatL2 + all-MiniLM-L6-v2 | Top-5 results, 7 category indices, 80 training tips | Personalized training recommendations |

---

## Appendix C: Frontend Page Inventory (New React Application)

| Portal | Pages | Key Features |
|--------|-------|-------------|
| **Student** | Dashboard, Courses, Course Detail, Assignments, Grades, Attendance, Timetable, Profile | 8 pages |
| **Teacher** | Dashboard, Courses, Course Builder, Course Edit, Assignments, Assignment Detail, Attendance, Students, Timetable, Profile | 10 pages |
| **Admin (LMS)** | Dashboard, Courses, Students, Teachers, Batches, Batch Detail, Timetable, Reports, Settings, Profile | 10 pages |
| **Admin (Platform)** | Platform Dashboard, Assignments, Exams List, Exam Structures, Rubrics, Generation, Approval Workflows, Users, Entities, Classrooms, Student Performance, Stats Corporate, Record, Vocabulary, Grammar, Payment Record, Tickets, Settings, Exam | 19 pages |
| **Auth** | Login, Register, Forgot Password | 3 pages |
| **Total** | | **~50+ pages** |

---

*Document prepared by EnCoach Engineering Team. For questions or clarifications, contact the Solution Architect.*
