Services About Contact Get in Touch
Back to Home
Aviation Maintenance Training & Operations System

AMTOS
System Description

Enrol. Train. Certify. One system, zero gaps — AMTOS unifies personnel, scheduling, question bank, online exams, attendance and regulatory reporting in one cloud-hosted platform purpose-built for Part-147 schools.

A product by Aggregator Solutions

System Overview

One Platform. The Complete Training Lifecycle.

AMTOS unifies every stage of an EASA Part-66 Aviation Maintenance Engineering programme — from first enrolment through to the issuance of a Certificate of Recognition (EASA Form 148). Administrators, instructors and students each see a role-tailored interface built on a single shared database, eliminating duplication and ensuring that records are always authoritative and up-to-date.

🛡️
Admin
Full system access — personnel management, track & course design, scheduling, BI dashboards, report designer, system settings.
📋
Staff
Operational access — student & staff records, enrolment, scheduling, attendance, exam oversight and certificate generation.
🎓
Instructor
Class-scoped access — manage own classes, record attendance, review exam attempts, conduct practical assessments.
👤
Student
Personal portal — class calendar, online exams, exam results, practical results, certificate download.
AMTOS DB Admin Full Control Staff Operations Instructor Class Scope Student Own Records
ASP.NET MVC 5 DevExpress v25.1 Entity Framework 6 SQL Server ASP.NET Identity Multi-Tenant SaaS ICS • iCalendar Import OIDC / Azure AD SSO LTI 1.3 Advantage QMS — ISO 9001 aligned Cloud Hosted · IIS
1

Step 01 — Foundation

Personnel & Access Management

Before training can begin the organisation must be populated with its people. AMTOS holds a single Personnel record for every individual — staff, instructor, or student — and each record can optionally be linked to a system login. Role assignment determines exactly what that person can see and do within the platform.

📸
Profile & Photo
Full name, nationality, date of birth, contact details and profile photo stored per person.
📂
Document Vault
Passport, national ID, medical and any custom document types uploaded and version-tracked per person.
🔑
User Account Creation
Generate a login (username + password) directly from the personnel record, or link to an existing account.
🛡️
Role Assignment
Admin / Staff / Instructor / Student roles control every menu, grid and action visible to that user.
🔒
Account Lock / Unlock
Administrators can instantly suspend or re-enable any user's access without deleting their record.
📥
Excel Import
Bulk-import student records from a spreadsheet, with optional automatic track assignment.
AMTOS Core DB Admin Staff Instructor Student

Role access is concentric — each outer role has a subset of the inner roles' permissions.

2

Step 02 — Structure

Training Tracks

A Track is the top-level certification pathway — for example Cat A, Cat B1.1 or Cat B2. Each track is a curated collection of courses, and when a student is assigned to a track they automatically inherit its full course curriculum. Tracks carry a total credit value and can be inspected to see exactly which courses they contain.

🗺️
Track Definition
Create named tracks with description and total credit hours; record creation audit (user + timestamp).
📚
Course Assignment
Attach any number of courses to a track via a batch checkbox interface. One course can belong to multiple tracks.
🔍
Drill-down View
Popup panel shows every course belonging to a track, with module numbers and credit info.
📤
Export
Export the full tracks list to PDF or Excel (WYSIWYG A4 landscape) with one click.
Cat B1.1 Track Module 1 Module 2 Module 7 Classes → Classes → Classes →

A track bundles courses; each course generates one or more scheduled classes.

3

Step 03 — Curriculum

Course Catalogue

Courses are the atomic unit of the curriculum. Each course maps to a Part-66 module number, carries its own document library, and may have prerequisites. Grading components (theory, practical, essay) can be configured independently per course, giving administrators fine-grained control over how final grades are calculated.

📖
Course Library
Create and manage courses with title, module number, credit hours and description. Full CRUD with inline grid editing.
🔗
Track Membership
Assign a course to one or many tracks via a checkbox panel; relationship changes are reflected immediately across the system.
👨‍🏫
Instructor Assignment
Designate which instructors are qualified to teach a course. The scheduler uses this list to populate instructor dropdowns.
📁
Document Vault
Upload syllabus, manuals, reference material, or embedded video URLs/iframes against a course. Configure visibility controls (Public, Instructors, Students) and serve files securely via an in-browser PDF.js canvas viewer equipped with student-specific dynamic watermarks and copy/print restrictions, or centered responsive 16:9 inline video streams.
⚖️
Grading Parts
Define weighted grading components (e.g. Theory Exam 70%, Practical 30%) specific to each course.
⛓️
Prerequisites
Flag prerequisite courses to guide enrolment decisions and ensure the correct learning sequence is followed.
4

Step 04 — Learners

Student Registration

Students are a specialised type of Personnel record. Beyond the standard profile fields, each student record holds their nationality, regulatory identification data, a photo, and a personal document vault. Large cohorts can be loaded in minutes via Excel bulk import, with automatic track assignment available at import time.

🪪
Rich Profile
Name, date of birth, nationality, contact info, status (active / inactive), photo and join date.
📄
ID Documents
Upload passport, national ID or any configured document type; each document tracked with number and expiry.
📥
Excel Bulk Import
Download import template, populate and re-upload; optional track override assigns all imported students to a specified track immediately.
🔑
Portal Access
Create student login credentials from within the record; one-click account lock / unlock for access control.
🗺️
Track Assignment
Assign a student to one or more tracks directly from their profile; mass-enrol them into all active track classes with a single action.
📊
Progress Snapshot
At-a-glance view of enrolments, exam pass rates and attendance rate surfaced on the admin dashboard.
👤 NATIONALITY STATUS DOCUMENTS TRACKS ENROLLED Portal Access ✓

Student record anatomy — profile, documents, tracks and login in one place.

5

Step 05 — Registration

Enrolment

Enrolment bridges students and scheduled classes. Assigning a student to a track provides a high-level affiliation; enrolment into individual classes confirms their participation in a specific timetabled delivery. Both individual and bulk enrolment are supported, and an enrolment-locking mechanism lets administrators freeze class rosters ahead of an exam period.

🎯
Track Enrolment
Assign a student to a track to establish their training pathway; mass-enrol them into all active classes on that track in one action.
📋
Class Enrolment
Per-class roster management with individual add/remove, bulk select, and drag-and-drop friendly grid interface.
Bulk Enrolment
Select multiple students simultaneously and enrol them all in a class in one operation, saving time with large cohorts.
🔒
Enrolment Lock
Lock a class roster so no further enrolment changes can be made — essential for maintaining exam integrity once an attempt window opens.
📊
All-Enrolments View
Cross-class enrolment overview with filtering by course, instructor and date range — for a bird's-eye staffing picture.
🔄
Status Tracking
Enrolment status (active, withdrawn, etc.) is tracked per student per class, maintaining a full historical record.
Tracks Pathway Courses Curriculum Classes Scheduled Students Enrolled
6

Step 06 — Timetabling

Class Scheduling & Calendar

AMTOS provides a visual, drag-and-drop scheduler for planning the entire training calendar. Classes are the concrete delivery of a course — they carry start/end dates, a facility, an instructor and a roster of enrolled students. Country-specific public holiday calendars prevent accidental scheduling on rest days, and any class can override the default holiday list where operational requirements demand it. External calendar events can also be imported directly from Outlook or Google Calendar via the ICS / iCalendar format.

📅
Visual Scheduler
DevExpress drag-and-drop calendar. Filter by instructor or class group. Supports day, week and month views.
🏢
Facility Booking & Capacity Check
Assign classes to rooms and facilities; manage the facility inventory (name, type, capacity). AMTOS warns planners when the enrolled student count exceeds the facility limit at scheduling time, preventing overbooking before it occurs.
🌍
Holiday Calendars
Country-specific public holiday lists automatically block scheduling. Admin can add or edit holidays per year.
⚙️
Class Overrides
Individual classes can override the default holiday rules — useful for make-up sessions or international cohorts.
📲
ICS Import
Import external calendar events (ICS format) to populate the AMTOS event calendar from Outlook or Google Calendar.
🗓️
Exam Scheduler
Dedicated exam scheduling view to plan written exam sittings, separate from the regular class timetable.
CLASS SCHEDULE Module 1 Module 2 Module 7B P-Workshop Holiday Today Jan Feb Mar Apr May Jun

Classes visualised on a full-width timeline with holiday and today markers.

Step 06b — Advanced Planning

Cohort Planner & AI Scheduler

For schools running multiple cohorts simultaneously, AMTOS provides a Cohort Planner that automatically generates a full-semester timetable using a Simulated Annealing meta-heuristic. The engine resolves instructor and classroom conflicts across all cohorts at once, respects the EASA Part-147 curriculum sequence, skips public holidays, and avoids clashing with any pre-existing classes — all in a single optimisation pass. The result is previewed as a colour-coded multi-cohort Gantt chart before being committed to the live schedule.

🧠
Simulated Annealing Engine
C# in-process SA engine: 150 temperature steps, cooling rate 0.95, 100 iterations per step. Move and Swap operators explore the solution space; the Boltzmann acceptance criterion allows occasional uphill moves to escape local optima. Seeded random ensures reproducible results.
📐
Hard & Soft Constraints
Hard (×1,000 penalty): no instructor or room double-booking, no cohort overlap. Soft: EASA curriculum sequence (×50), compact course blocks (×20), minimal daily slot gaps (×15) — balanced to produce teachable, realistic timetables.
📊
Multi-Cohort Gantt View
Colour-coded Gantt chart with one horizontal track per cohort and school weeks as columns. Each EASA module (M1–M17), practical subject (Trips, VFU, FTS, EWIS), and supplementary block has its own harmonised colour category with a live legend.
🌡️
SA Progress Overlay
Glassmorphism modal with a live HTML5 Canvas particle simulation that cools from hot red/orange → stable blue, mirroring the SA temperature. Displays live temperature readout (100→0°C), conflict-cost score, and phase label (Exploring → Refining → Converging).
📅
Holiday-Aware Working Days
Derives the semester working-day list from the existing Holiday Calendar, skipping weekends and all active public holidays. Pre-booked instructor and room slots from existing classes are respected as hard constraints during optimisation.
🚀
One-Click Publish
After reviewing the Gantt preview, click “Publish Classes” to write all generated lessons into Class and Schedules tables — ready for instructor assignment and student enrolment, with DevExpress calendar sync included.
Dynamic Slot Configuration
The School Day Timetable supports 2–8 configurable slots (default: 3 AM + 3 PM, 90 min each). Planners add or remove slots live; times are persisted to SystemSettings. The SA engine and capacity bar both adapt automatically — each cohort gets its own independent slot pool, so two simultaneous cohorts show real utilisation, not double-counted figures.

SA Cooling Curve — Conflict Cost vs Temperature

Temperature (hot → cool) Conflict Cost EXPLORING REFINING CONVERGING

Conflict cost collapses as the SA engine cools. Hard violations carry a ×1,000 penalty that forces near-zero conflicts in all published schedules.

Built-in EASA Part-147 Curriculum Blocks

S1 — Semester 1 MCB1 — Electrical MCB2 — Maintenance MCB3 — Human Factors MCB4 — Structures I MCB5 — Structures II MCB6 — Turbine
6c

Step 06c — Content Protection

Secure Document Viewer & Course Material DRM

Course syllabi, manuals and lecture materials are delivered through a dedicated Secure Protected View rather than a plain file download. The viewer renders PDFs page-by-page on an HTML5 Canvas using PDF.js, and burns a personalised forensic watermark into every page server-side before it is streamed — making unauthorised distribution traceable back to the individual student. A matching set of client-side controls prevents printing, right-click saving, and developer-tools inspection.

📰
Canvas-Based PDF Rendering
PDFs are rendered page-by-page onto HTML5 <canvas> elements via PDF.js. The document is never exposed as a downloadable file object in the browser — students see rendered pages, not a raw PDF stream.
🖋️
Personalised Forensic Watermark
The server streams a modified copy of the PDF with a diagonal watermark burned into every page via PdfSharp: “Property of [Student Name] ([email]) — IP: [IP address] — Viewed: [timestamp]”. If a document leaks, the watermark identifies the exact student, session and time.
🚫
Print Block
A CSS @media print rule hides the entire page body — including the canvas, header and container — so any print or PDF-print attempt produces a blank page. Ctrl+P is also intercepted at the keyboard level before the browser print dialog can open.
🖱️
Right-Click & Context Menu Disabled
The contextmenu event is suppressed globally on the viewer page, preventing the browser's “Save image as” or “Inspect” options from appearing when a student right-clicks on any rendered page.
⌨️
Keyboard Shortcut Blocking
The viewer intercepts and cancels Ctrl+P (print), Ctrl+S (save), Ctrl+C (copy), Ctrl+U (view source), F12, and Ctrl+Shift+I / J (DevTools). None of these can be used to extract or capture the document.
🎥
Video Material Support
The same secure viewer also renders embedded video lectures (iframe or direct URL) within the same protected environment — no separate download link is exposed. The SECURE PROTECTED VIEW badge is displayed in the header for all content types.
🔐
Server-Side Access Control
The stream endpoint is decorated with [Authorize(Roles="Student")]. Unauthenticated or unauthorised requests receive HTTP 404 / 403 — the raw file path is never exposed in the HTML, and direct URL guessing returns nothing.
📖
My Materials Portal
Students access all course documents through the My Materials sidebar panel in the student portal. Documents are listed per course with title, type (PDF / Video) and an Open Secure Viewer button — there is no bulk download option.
PDF.js Canvas Rendering PdfSharp Watermark CSS Print Block Keyboard Intercept Right-Click Disabled Forensic Watermark — Name + Email + IP + Timestamp Server-Side Auth Guard
7

Step 07 — Assessment

Exams & Question Bank

AMTOS includes a full question-bank authoring system with an approval workflow, plus two distinct exam delivery modes. The question bank is structured around a three-level EASA Part-66 syllabus taxonomy (Module → Submodule → Sub-submodule), ensuring every question maps precisely to a regulatory objective. Multiple-choice theory exams are taken online by students in real time, with questions assigned either uniformly (same set for everyone) or randomised per student. For written assessments requiring longer responses, Essay Exams present a fully separate submission-and-grading workflow: students upload a PDF within a configurable open/close window, and administrators review and grade the submission before releasing marks through the same controlled publication workflow as MCQ results.

Question Bank
Author multiple-choice questions with up to four illustrated answers. Module-tagged for accurate assignment to the correct course exams.
Question Approval
Two-stage workflow: questions are drafted then approved by an admin before they become eligible for use in live exams.
🎲
Random or Fixed Sets
Configure an exam to give every student the same questions, or assign a random selection per student to prevent answer sharing.
💻
Online Exam Delivery
Students log in and answer questions through the AMTOS student portal. Submissions are captured and graded instantly.
📝
Essay Exams
Create essay-type assessments with configurable open/close submission windows. Students upload a PDF answer file through the student portal. Administrators download, review and score each submission, then release marks via the standard results publication workflow. Supports multiple essay exams per class.
🖼️
Illustrated Questions
Both questions and individual answer options support image uploads — essential for diagram-based technical questions.
🗂️
3-Level Taxonomy
Questions are tagged to Module → Submodule → Sub-submodule, mirroring the EASA Part-66 syllabus. Filters let examiners draw questions from any level of the hierarchy.
📜
Exam Blueprints
Define drawing quotas per scheduled sitting. The dynamic drawing algorithm selects a randomized subset of active questions matching specific EASA submodules and ATA chapters, with validation warnings for pool shortages.
👁️
Live Proctor Dashboard
Supervisors monitor sittings in real time: tracking student progress (elapsed/remaining time, questions answered), idle warnings, and focus loss counts. Offers remote administrative pause, resume, and terminate controls.
📋
Invigilator Session Gate
Enforces computer-based exam compliance. Candidates check in with verifying IDs (Present, Late, Absent). The invigilator controls individual or bulk exam starts, logs incident notes, sets time extensions, and locks results via a formal session sign-off.
⚠️
Focus-Loss Logging
Automatically logs focus loss events on student portal if a student switches tabs or minimizes the exam page. Increments an on-screen warning counter and flags attempts exceeding threshold limits for review.
📥
Bulk Q&A Import
Import hundreds of questions and answers at once from Excel or CSV. Automatic correct-option mapping, sequential sequencing, duplicate detection and full validation logging. Course lookup by title.
🎯
Practice Exam Mode
Flag any exam as Practice. Students see per-question answer reveal after submission and auto-generate the next attempt. Practice attempts carry a Practice badge and are excluded from formal results, eligibility counting and the Exam Eligibility Gate.
1 2 3 4 5 Q Bank Draft Q Approved ✓ Exam Created Student Takes Exam Auto-Graded ≥ 75% = Pass 6 Verified Instructor Review Results Released
7a

Step 07a — Integrity

Supervised Exam Suite

AMTOS provides a full proctoring layer for online theory exams — from invigilator check-in gates and biometric face verification through to a live proctor dashboard and automatic focus-loss detection. Every action is logged with a timestamp, giving exam administrators a complete audit trail for each sitting.

🔐
Invigilator Check-In Gate
Students cannot begin an exam until an invigilator physically verifies their identity and clicks Approve. The exam link remains locked until the check-in is completed — there is no self-service bypass.
📷
Biometric Webcam Check-In
At check-in the invigilator triggers a webcam capture. The captured image is stored against the sitting record and compared to the student's profile photo via FaceMatchingService. EASA Part-147 CBT guidance note references this check.
👁️
Focus-Loss Detection
Every browser tab-switch or window-blur during an active exam is recorded with a timestamp. The invigilator sees a per-student focus-loss count in real time. A configurable threshold can trigger automatic exam submission on excessive violations.
⏱️
Time Extensions
Invigilators can grant per-student time extensions mid-sitting without interrupting other students. Extensions are logged with the invigilator's identity and reason.
📋
Incident Notes
Any observation or irregularity during a sitting can be captured as an incident note, attached to the student's attempt record, and reviewed in the post-exam audit view.
📡
Live Proctor Dashboard
A real-time dashboard shows every student currently active in an exam — status, time remaining, question progress, and focus-loss count. The invigilator can extend time, flag a student, or force-submit directly from this view.
7b

Step 07b — Alignment

Exam Blueprints & ATA Chapter Tagging

For schools requiring rigorous regulatory alignment, AMTOS extends the question bank with ATA chapter tagging and a Blueprint system. Blueprints define the required distribution of questions across ATA chapters — so every exam is verifiably balanced across the EASA Part-66 syllabus rather than drawn at random.

🏷️
ATA Chapter Tags
Every question in the bank is tagged to one or more EASA Part-66 ATA chapters. The AtaChapter field is exposed in the question list DTO, grid filters, and export views.
📐
Exam Blueprints
Define a Blueprint that specifies how many questions must be drawn from each ATA chapter when generating an exam. Blueprint-driven selection replaces or supplements simple random/fixed question assignment.
Regulatory Traceability
Every generated exam set is traceable back to its Blueprint. Auditors and examiners can confirm the ATA chapter spread of any past sitting without manual checking.
🔍
ATA-Filtered Question Views
The QBank viewer includes ATA chapter column and filter, letting question authors identify gaps — ATA chapters with too few approved questions — before scheduling an exam.
8

Step 08 — Presence

Attendance Recording

Attendance is recorded at the class-session level for every enrolled student. AMTOS presents this data as a pivot table — students on one axis, dates on the other — so instructors and administrators can spot absence patterns instantly. An instructor can toggle a student's presence directly in the grid, making real-time updates from the classroom straightforward.

✔️
Session-Level Recording
Mark each student present or absent per class session. One click toggles status; changes save instantly.
🗃️
Pivot View
Students vs. dates heat-map grid — colour-coded green/red — lets administrators scan the whole class at a glance.
👩‍🏫
Instructor View
Instructors access a scoped view of their own classes only; toggle attendance inline without admin involvement.
📅
Period Filtering & Full-History View
Filter the pivot by Week, Month, or All (default). “All” loads the complete class history in one scrollable table with no paging required.
📊
Dashboard KPI
Attendance rate (% present across all sessions) surfaces as a KPI gauge on the admin homepage dashboard.
📋
CoR Hours Mapping
Attendance data feeds directly into the Certificate of Recognition hours-attended section (Step 12).
📊
Summary Card Strip
A compact card strip above the pivot shows each student’s photo, name, a colour-coded attendance bar, and cumulative X/Y (Z%) — always reflecting full class history, even in Week/Month view.
⚠️
Absence Breach Alert
Students whose absence exceeds the configured threshold ( AbsenceThresholdPct in SystemSettings, default 10%) are flagged with a red card border and row highlight — the same threshold that drives the Exam Eligibility Gate.

Attendance Pivot — Students × Sessions

Present Absent No session
9

Step 09 — Verification

Exam Review & Results Publishing

Before results reach students, an instructor or administrator reviews each attempt in full — question by question. Individual questions can be excluded/awarded (e.g. due to ambiguity) in two modes: excluding/awarding for a specific student or system-wide. A release-summary screen confirms the pass/fail count before results are published. Students immediately see their results, including which questions they answered correctly.

🔬
Attempt Review
Full attempt walkthrough: each question displayed with the student's selected answer versus the correct answer.
🚫
Question Exclusion/Awarding
Exclude/Award for one student or all students on the attempt adjusting the score accordingly.
📈
Pass / Fail Summary
Pre-release summary screen shows pass count, fail count and overall class performance before publishing to students.
📤
Results Release
One-click release makes results visible in the student portal. Release can be reverted if corrections are needed.
📝
Essay Grading
Instructors open submitted PDF essays, score them and release marks — same release workflow as MCQ exams.
🎓
Student Portal View
Students see released results including individual question feedback; these feed into the Certificate of Recognition automatically.
📐
Item Analysis
Per-question statistics across all student attempts: correct-answer rate, most-selected distractor, and discrimination index — flags questions that should be reviewed or retired.
🔑
Admin & Staff Results Viewer
A dedicated exam results viewer for Admin and Staff roles provides a cross-class view of all student attempts. Admins and Staff can browse any student's full attempt, cancel individual questions, and monitor pass/fail outcomes — without being restricted to a single instructor's class scope.
⚠️
Flagged Questions & Release Gate
Questions where fewer than 50 % of students answered correctly are automatically flagged for admin review after each exam. The Release Results button is blocked while any flagged question remains in Pending status. An administrator must set each flag to Reviewed, Dismissed, or Cancelled before results can be published — providing a mandatory quality-control gate between auto-grading and student visibility. Any cancellation actions automatically update the student results history (snapshots) in real-time.

Step 09b — Compliance

Exam Eligibility Gate

Before a student can sit any exam, AMTOS automatically checks their attendance record against configurable absence thresholds. Students whose absence percentage exceeds the threshold are blocked from participating and see an amber warning card instead of the exam link. Administrators can investigate each case and either lift the block (clearing it entirely) or force a permanent block — with a mandatory reason recorded for audit purposes.

🚦
Automatic Block
Absence % is computed per-module for Theory & Practical exams and cumulatively across all modules for Essay exams. Any student above the threshold is auto-blocked with no manual intervention required.
⚙️
Configurable Thresholds
Two independent thresholds stored in SystemSettings: AbsenceThresholdPct (per-module, default 10 %) for Theory/Practical, and AbsenceThresholdEssayPct (cumulative, default 10 %) for Essay exams. Both are editable live from the Admin UI without a deployment.
🔓
Admin Override
Lift Block — clears the block entirely, restoring full eligibility. Force Block — creates a permanent override with a mandatory reason that is stored in the ExamEligibilityOverrides table for audit. Override reasons appear in the grid for future reference.
👁️
Eligibility Dashboard
Admin sees a filterable grid (all students or blocked-only) showing each student's lesson count, absence count, attendance bar, colour-coded status badge (Auto-Blocked / Admin-Blocked / Lifted / Eligible) and action buttons.
⚠️
Student Warning Card
Blocked students see an amber warning card on their My Exams page for any upcoming exam in the relevant module — instead of the exam entry button — instructing them to contact management. Unblocked exams remain accessible normally.
🛡️
Server-Side Guard
Even if a student bypasses the UI, the exam controller re-checks eligibility server-side before allowing an attempt to be created. Blocked students receive an HTTP 403 response — there is no client-only enforcement.
📋
History Report Integration
Every eligibility decision — automatic or admin-overridden — is permanently surfaced in the Student History Report (Section 5). For each enrolled class the report shows the live absence %, the configured threshold, the resolved status (Eligible / Auto-Blocked / Admin-Blocked / Admin-Lifted) and, where a manual override exists, the reason text, the administrator's username, and the action timestamp. Closes the EASA audit loop: the student's complete training record now includes every eligibility override ever made on their behalf.
90-Day Retake lockout
EASA Part-147 Enforced — If a student fails a theory exam sitting (scoring under 75%), AMTOS automatically locks out any retakes for this course for 90 days. The student exams portal displays a warning card detailing the lockout duration and block details, and security checks run server-side.
10

Step 10 — Hands-On

Practical Assessment

Workshop practical skills (P1–P9) are assessed against a defined set of criteria for each module. An instructor creates a Practical Exam linked to a class, then opens individual student attempts and scores each criterion live during the assessment. Scores are held in draft until the instructor deliberately releases them, ensuring students only see validated results.

🔧
Module Definitions
Configure P1–P9 practical modules — title, description, and which category (Cat A / Cat B) each module applies to.
📋
Assessment Criteria
Define detailed pass/fail or scored criteria per practical module; criteria are reusable across multiple exam instances.
🗂️
Practical Exams
Link a practical exam to a class; multiple practical exams can share the same class (e.g. mid-term and end-of-course).
🎯
Conduct Assessment
Instructor-facing screen to score each criterion per student in real-time; supports notes and observations per criterion.
📤
Results Release
Results are held privately until explicitly released; same controlled publication workflow as theory exams.
👀
Student View
Students see released practical results in their portal; scores flow into the CoR Checklist workshop section.

Assessment Matrix — Modules × Criteria

C1 C2 C3 C4 C5 P1 P2 P3 P4 P5 Pass Fail Pending
11

Step 11 — Insight

Dashboards & Business Intelligence

Every user role in AMTOS has a personalised dashboard. The admin homepage surfaces live KPI gauges drawn from the database in real time. Above that, a full DevExpress BI Dashboard Designer lets administrators build and publish rich, interactive dashboards — charts, pivots, maps and more — without writing code. Instructors see their own classes and attendance; students see their personal exam and results calendar.

📊
Live KPI Gauges
Admin homepage: Real-time key metrics including Total Students, Total Instructors, Total Classes, Total Enrolments, Attendance Rate % and Exam Pass Rate %.
🛠️
BI Dashboard Designer
Full DevExpress drag-and-drop designer: charts, pivots, cards, filters. Connect to any AMTOS data source. Publish to all roles.
📅
Instructor Calendar
Instructors see their upcoming classes, exam reviews and practical assessments in a personal calendar view.
👤
Student Portal
Students see their personal class timetable, upcoming and past exams, and released practical results — all scoped to their enrolments only.
🎨
Theming & Dark Mode
User-level theme preferences: font family, colour intensity, brightness, background intensity, and full dark mode.
📉
Report Designer
Admin-accessible DevExpress Report Designer for building custom printable reports backed by stored procedures with dynamic columns.

Admin KPI Dashboard

87%
Attendance
72%
Pass Rate
248
Students
@keyframes gaugeIn{from{stroke-dasharray:0 226;}to{}}
12

Step 12 — Certification

Reports, CoR Checklist & EASA Form 148

At the end of training, two regulatory documents formalise completion. The CoR Checklist is a comprehensive regulatory progress report (passport check, hours attended, theory results M1–M17, workshop practicals P1–P10, aircraft practical, and signatures). The Certificate of Recognition (EASA Form 148) is the formal certificate listing module pass dates and track — the final output of the training programme. Behind both sits the Student History Report: the complete audit trail that tells the story of how and when that certificate was earned — every session, every exam question, every practical criterion, and every eligibility decision, all in one retrievable record. All three query the live database at generation time — no manual compilation.

☑️
CoR Checklist
Full regulatory checklist: ID verification, hours attended, theory results (M1–M17), workshop practicals (P1–P10), aircraft practical, signature section.
📜
Certificate of Recognition (Form 148)
EASA Form 148: A4 portrait PDF listing all passed module numbers, pass dates, track and signatory block. The formal output of the training programme.
Live Data
All documents query the live database — every pass, attendance record and assessment score is reflected at print time.
🖨️
Preview & Download
In-browser PDF preview via the DevExpress document viewer; one-click download. No server-side print queue required.
🔐
Access Control
Admins and Staff can generate documents for any student. Students can only access their own certificate and checklist. The History Report is admin/staff-only.
📤
Export to PDF / Excel
Grid data (Tracks, Courses, Enrolments) can be exported to A4 PDF or Excel WYSIWYG with branded headers.
📋
Student History Report — The Story Behind the Certificate
The Form 148 says a student passed. The History Report shows exactly how and when that happened. The complete, single-page audit record for any student — generated on demand from live data. Available to Admin and Staff only.

Section 1 — Attendance: present/absent per session per enrolled class, attendance rate % with colour-coded threshold indicators.
Section 2 — Theory Exams: every attempt — course, date, score %, Pass/Fail, and a full question-by-question breakdown showing what the student answered vs the correct answer.
Section 3 — Practical Assessments: module, date, assessor, overall result, and criterion-by-criterion pass/fail with Essential criteria highlighted.
Section 4 — Essay Submissions: title, submission date, grade, instructor feedback.
Section 5 — Exam Eligibility Gate: one row per enrolled class — live absence %, threshold, computed status (Eligible / Auto-Blocked / Admin-Blocked / Admin-Lifted), admin override reason, actor, and timestamp. Every eligibility decision permanently on record.

Fully print-ready: browser-native print / Save as PDF. All five sections render without interactive controls — the printout is a clean, regulator-grade evidence document that stands behind every Form 148 ever issued.

CoR Checklist — Layout Wireframe

Instructor
Manager
13

Step 13 — Quality Management

Quality Management System (QMS) Forms

To maintain regulatory compliance (EASA Part-147), AMTOS includes an integrated Quality Management System. This module allows quality managers and administrators to schedule and record audits, raise Non-Conformance Reports (NCR) with automated indexing, and track Corrective & Preventive Actions (CAPA) assigned to personnel.

🛡️
Compliance Audits
Schedule and document reviews across targets like Theory Exams, Practical Assessments, Facilities, or Instructors. Record audit details, auditor, scope, findings, and recommendations.
⚠️
Non-Conformance Reports (NCR)
Log compliance discrepancies with automated serial numbering (NCR-YYYY-XXXX). High severity items are visually highlighted in soft red on the dashboard grid.
✔️
Corrective Actions (CAPA)
Assign tasks to resolve NCRs, set target dates, stamp completion dates automatically upon status changes, and track verification signatures.
🔗
Relational Safety
Foreign keys enforce cascade deletion of corrective actions when an NCR is deleted, while setting audit references to null if a parent audit is removed.

QMS Records — Relational Schema

QmsAudits
🔑 AuditID (PK)
📝 AuditTitle, Scope, AuditDate
QmsNonConformances
🔑 NcrID (PK)
🔗 AuditID (FK) -- ON DELETE SET NULL
📝 NcrNumber (e.g. NCR-2026-0001)
🔴 Severity ("High" triggers Red styling)
QmsCorrectiveActions
🔑 CapaID (PK)
🔗 NcrID (FK) -- ON DELETE CASCADE
📝 AssignedTo, TargetDate, CompletionDate
14

Step 14 — Integration

SSO & LTI Integration

AMTOS supports enterprise identity federation and e-learning interoperability out of the box. Schools can authenticate users through any OIDC-compatible identity provider (including Azure Active Directory) and expose courses and quizzes to external LMS platforms via LTI 1.3 Advantage — making AMTOS a plug-in component of a wider learning ecosystem.

🔑
OIDC / Azure AD SSO
Users can sign in with their organisational Microsoft (Azure AD) or any OIDC-compatible identity provider account. No separate AMTOS password is required. Existing ASP.NET Identity accounts remain supported alongside SSO.
🔗
LTI 1.3 Advantage
Expose AMTOS courses and theory exams as LTI tools to any compliant LMS (Moodle, Canvas, Blackboard). Deep-link launches drop learners directly into the correct exam context; grade pass-back returns results to the external gradebook.
🏢
Multi-Tenant Token Isolation
Each tenant in the AMTOS SaaS platform has its own isolated SSO configuration. Token validation, claim mapping and role assignment are performed per-tenant — one identity provider per school, or a shared enterprise directory.
🔒
Secure Token Handling
PKCE flow used for all OIDC exchanges. Refresh tokens are stored encrypted. LTI 1.3 messages are signed with RS256 JWTs and validated server-side before any resource is granted.
OIDC / OpenID Connect Azure Active Directory LTI 1.3 Advantage PKCE / RS256 Available Now

System Architecture

Technology & Infrastructure

AMTOS is a multi-tenant SaaS application deployed on a Windows IIS server. Each school (tenant) operates on its own isolated SQL Server database — a database-per-tenant model — with tenant resolution handled automatically via subdomain routing: a custom TenantResolver reads the host header and a DbContextFactory instantiates the correct connection string. The presentation layer is rendered server-side by ASP.NET MVC 5 using the Razor view engine, enriched by the DevExpress v25.1 component suite for grids, schedulers, dashboards and PDF reports. Authentication is handled by ASP.NET Identity. Data persistence uses Entity Framework 6 Code-First migrations.

Additionally, the system features a built-in Multi-Tenant Provisioning Wizard that automates the deployment of new schools, complete with support for custom database naming constraints (enabling seamless hosting on shared environments like Plesk with custom database prefix rules). To facilitate evaluation and staging, the wizard supports the instant deployment of "Demo Environment" sandbox clones. These sandboxes are isolated databases that run on a dynamic connection routing architecture, pre-configured with a 5-step quick-start seeder panel and a manual data clean/reset module directly accessible from their administrative dashboards.

Browser Chrome · Edge · Safari
IIS / TenantResolver Subdomain routing · DbContextFactory
ASP.NET MVC 5 Razor · DevExpress · Identity
Entity Framework 6 Code-First ORM
SQL Server Per-tenant database isolation
ASP.NET MVC 5 DevExpress v25.1 Entity Framework 6 SQL Server ASP.NET Identity Multi-Tenant · Database-per-Tenant TenantResolver · DbContextFactory ExcelDataReader ICS / iCalendar PDF Generation Dark Mode & Themes CSV / XLS / TXT Import