Skip to content
JDTobin edited this page Feb 27, 2026 · 9 revisions

Welcome to the MMT System wiki! This documentation provides an overview of how the MMT Portal frontend and MMT Backend work together to deliver a comprehensive military transcript management solution.

About

The Modernized Military Transcript system is a distributed application consisting of multiple components that work together to manage military transcripts, academic institution administration, and learner records, enabling complex data consolidation from multiple data sources and the generation and sharing of PDF transcripts:

  • MMT Portal: A Next.js-based frontend application providing the user interface
  • MMT Backend: A Django-based backend API handling data consolidation, storage, and business logic
  • MMT IA ACE: A Indexing Agent based off of XIA to index data from ACE
  • ELRR-SERVICES: Serves as the record system for military learners' records
  • XIS: Where the indexed experiences are stored

MMT Architecture

The MMT Portal serves as the human-facing interface while the MMT Backend provides the data services and API layer. The portal is purely a frontend application and relies entirely on the MMT Backend to function.

---
title: MMT Connected Systems
---
graph TD;
        subgraph Legend
                1("System")-->|Existing|2("System");
                1("System")-.->|Planned|2("System");
        end
        subgraph External
                A[ACE];
                CB[College Board];
                P[Prometric];
        end
        subgraph P1
                E[ELRR Services];
                MIA[MMT Indexing Agent];
                M[MMT Backend];
                MMTUI[MMT UI];
                XIS[XIS];
                XMS[XMS Backend];
                XMSUI[XMS UI];
        end
        A-->|Credit Recommendations|MIA;
        CB & P -.->|Test Results|MIA;
        MIA-->|Credit Recommendations|XIS;
        MIA-.->|Test Results|E & M;
        E-->|Learner Record|M;
        XIS-->M;
        XIS-->XMS;
        XMS-->XMSUI;
        M-->MMTUI;
Loading

Configuration

The two systems connect via environment variables:

MMT Portal requires:

  • NEXT_PUBLIC_BACKEND_HOST: URL pointing to the MMT Backend API

MMT Backend requires:

  • CORS_ALLOWED_ORIGINS: Must include the Portal's URL to accept requests
  • CSRF_TRUSTED_DOMAIN: Must trust the Portal's domain for secure requests
  • Database, authentication, and external service credentials

Key Features Enabled by Integration

Data Management

  • Transcript Management: Portal displays transcripts; Backend stores and generates them (including PDF generation)
  • User Records: Backend consolidates user data from ELRR Services; Portal provides search and tracking interfaces
  • Academic Institutions: Backend manages institution data; Portal provides admin interfaces

Data Source Integration

The Backend consolidates data from multiple external systems:

  1. ELRR Services: Learner records and military experiences
  2. XIS: ACE credit recommendations and course equivalencies
  3. MMT Indexing Agent: Credit recommendations and test results (planned)

Automated Workflows

The Backend provides three key ETL workflows:

  1. ELRR ETL: Loads user data, military courses, experiences, and course assignments
  2. XIS ETL: Loads ACE recommendations, course areas, identifiers, and credit hours
  3. Academic Institute Import: Loads institution information from CSV/Excel files

These workflows can be scheduled or triggered manually, keeping Portal data current.

Technology Stack

MMT Portal (Frontend)

  • Framework: Next.js 14.x with React 18.x
  • Styling: Tailwind CSS, Headless UI
  • State Management: React Query
  • HTTP Client: Axios
  • Testing: Jest, Cypress, React Testing Library

MMT Backend (API/Services)

  • Framework: Django
  • Task Queue: Celery (with broker and result backend)
  • Database: Configurable SQL database
  • Authentication: Knox API tokens
  • Storage: Optional S3 integration for file imports

Authentication

Previously, the MMT portal used Platform One (P1) authentication, where the UI redirected users to P1's SSO login page and the backend validated the returned JWT via the p1-auth package (More details here: p1-auth). Now, with P1 removed, the portal uses Django session authentication for users, eliminating the SSO redirect. CORS and CSRF settings are still set by environment variables, but user accounts will be created manually or through the admin rather than being auto created/updated from a JWT.

To log in to the MMT portal locally, the user must first log in through the Django admin backend, which creates a session cookie in the browser. Once logged in through the admin, navigating to the frontend UI will automatically recognize the active session.

User Roles and Access

The integrated system supports multiple user types:

  • Super Users: Full system access via Django admin (Backend)
  • AI Admins: Manage academic institution members and data (Portal interface)
  • AI Members: Read access to shared transcripts within their academic institution (Portal interface)
  • Standard Users: View and manage their own transcripts (Portal interface)

Key Integration Points

Feature Portal Responsibility Backend Responsibility
Transcript Display Render UI, search, filters Store data, generate PDFs, serve API
User Management Admin dashboard interface User authentication, role management
Academic Institutions CRUD interfaces Data storage, import workflows
External Data Display consolidated data ETL processes, API integration
Announcements Display and management UI Storage and API endpoints

Getting Started

New to the MMT system? Start here:

  1. Administrators: Review the MMT Backend setup guide to configure data sources
  2. Developers: See both MMT Portal and MMT Backend for development workflows
  3. Users: Access the Portal at your deployment URL once the system is configured

Learn More