Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
  • M MTTL
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Jira
    • Jira
  • Merge requests 14
    • Merge requests 14
  • Requirements
    • Requirements
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • 90COS
  • MTTL
  • Wiki
  • Home

Project '90cos/training-systems/jqr-tracking-system' was moved to '90cos/cyt/training-systems/vtr-system'. Please update any links and bookmarks that may still have the old path.
Last edited by Don Davis May 26, 2021
Page history

Home

Table of Contents

  • Introduction
  • Data file Directory Structure
  • Change Management Workflow
  • Roadmap JSON file
  • Rel-Links JSON files
  • Pipeline Overview

Introduction

This repository is designed for the automation of training and evaluation requirements, traceability, and metrics. Below are the requirements for our organization's Master Training Tasks List (MTTL).

  1. Must contain all necessary Knowledge, Skills, Abilities, and Tasks (KSA&Ts) for the organization's work roles
  2. We must be able to link every KSA&T to "one or many" work roles
  3. The proficiency of each KSA&T as they relate to their respective work role.
  4. Should be able to trace the training required to accomplish a specific KSA&T at a specific proficiency level
  5. Should be able to trace the evaluation material to accomplish a specific KSA&T at a specific proficiency level
  6. Individuals should be able to submit a change management request to add/remove/modify a work role KSA&T.

The primary and official source for information about the MTTL webpage is located on the official MTTL page.

We initially relied on a non-relational database and GitLab static pages. However, we have begun migrating our infrastructure elsewhere.

We rely heavily upon Git and Gitlab for change and project management, Gitlab continuous integration (CI) pipelines and a disposable MongoDB service in the pipeline to join the data and build the presentation layer. To do this we first organize the data in a logical manner to promote scalability/sustainability. The items below are necessary to maintain this concept.

  1. The MTTL repo does not contain a single MTTL file. Instead, the MTTL file (mttl.min.json) is an artifact that is produced in the repo's CI/CD pipeline.
  2. The core of the the MTTL repo are the knowledge, skill, ability, and task files, and the WORK-ROLES.json and SPECIALIZATIONS.json files that contain a list of all work-roles and specializations.
    • The knowledge, skill, ability, and task files are datasets of all of the knowledge, skills, abilities, tasks that are required for the organization. These items only have the KSA&T to KSA&T relationship information, topic information, requirement source information, and available training and evaluation information. Proficiency of work roles/specializations are located inside the TTL files in the 'work-roles' folder respectively.
    • The WORK-ROLES.json and SPECIALIZATIONS.json files are dictionaries of work role/specialization specific information that contain work role/specialization repository URLs that contain progression information for the MTTL Training Roadmap

Data file Directory Structure

MTTL Repo
├── build_frontend.sh
├── CODEOWNERS
├── CONTRIBUTING.md
├── docs
├── mttl
│   ├── database
│   ├── scripts
│   └── src
├── mttl.py
├── scripts
└── server.js
  • docs: mdbooks user documentation
  • build_frontend.sh: script to build MTTL locally
  • mttl: files need to create MTTL web page including app and database files
  • mttl/database/requirements: directory with all MTTL KSAT JSON files
  • mttl/database/rel-links: directory with training/eval relationship-link files
  • mttl/database/work-roles: directory with work-role JSON files containing requirement mappings
  • mttl/scripts: directory with all source CI/CD python and bash scripts
  • .gitlab-ci.yml: Gitlab CI/CD configuration file
  • CODEOWNERS: Gitlab ownership file to designate necessary approval for changes to specific files
  • mttl.py: Entry point maintenance script
  • scripts: deprecated directory maintained for legacy reasons *** Please note, more thorough documentation is maintained with the official documentation available here

Change Management Workflow

The change management workflow is depicted below.

graph TD;
  NEW_REQUEST[NEW CUSTOMER REQUEST]-->|ASSIGN POC| REVIEW(REVIEW REQUEST);
  REVIEW-->CLARIFY(CLARIFY REQUEST);
  CLARIFY-->RESPONSE{CUSTOMER RESPONSE};
  RESPONSE-- Revise -->CLARIFY;
  RESPONSE-- Accept -->CREATE(CREATE MERGE REQUEST);
  CREATE-->UPDATE(MAKE UPDATES);
  UPDATE-->GOVREVIEW(GOV/CUSTOMER REVIEW);
  GOVREVIEW-->APPROVED{CHANGES APPROVED};
  APPROVED-- No -->UPDATE;
  APPROVED-- Yes -->DONE[MERGED TO MASTER]
  APPROVED-- Rejected -->DEAD[CLOSED WITHOUT MERGE]

Rel-Links JSON Files

This section describes the *.rel-links.json file; rel is short for relation. There are many of these files inside the 'rel-links' folder that describe the KSATs and proficiency levels for corresponding training and evaluation materials. Theses file are used in the pipeline to create metrics and visualization for the MTTL. You can find the template for these json object in the json_templates.py file under the trn_rel_link_item_template() and evl_rel_link_item_template() functions.

Pipeline Overview

graph TD;
  START-->STAGE_VALIDATE[Stage: Validate]

  STAGE_VALIDATE-- Job -->VALIDATE_docs([Docs])
  STAGE_VALIDATE-- Job -->VALIDATE_K([Knowledge])
  STAGE_VALIDATE-- Job -->VALIDATE_S([Skills])
  STAGE_VALIDATE-- Job -->VALIDATE_A([Abilities])
  STAGE_VALIDATE-- Job -->VALIDATE_T([Tasks])
  STAGE_VALIDATE-- Job -->VALIDATE_TRN_REL_LINKS([Training Rel-Links])
  STAGE_VALIDATE-- Job -->VALIDATE_EVL_REL_LINKS([Eval Rel-Links])
  STAGE_VALIDATE-- Job -->VALIDATE_WORK_ROLES([Work-Roles])

  VALIDATE_docs-->STAGE_PRE_BUILD[Stage: Pre-Build]
  VALIDATE_K-->STAGE_PRE_BUILD[Stage: Pre-Build]
  VALIDATE_S-->STAGE_PRE_BUILD[Stage: Pre-Build]
  VALIDATE_A-->STAGE_PRE_BUILD[Stage: Pre-Build]
  VALIDATE_T-->STAGE_PRE_BUILD[Stage: Pre-Build]
  VALIDATE_TRN_REL_LINKS-->STAGE_PRE_BUILD[Stage: Pre-Build]
  VALIDATE_EVL_REL_LINKS-->STAGE_PRE_BUILD[Stage: Pre-Build]
  VALIDATE_WORK_ROLES-->STAGE_PRE_BUILD[Stage: Pre-Build]

  STAGE_PRE_BUILD-- Job -->PRE_BUILD_PREP([Build Prep])

  PRE_BUILD_PREP-->STAGE_BUILD[Stage: Build]

  STAGE_BUILD-- Job -->BUILD_MTTL([MTTL Dataset])
  STAGE_BUILD-- Job -->BUILD_TTL([TTL Dataset])
  STAGE_BUILD-- Job -->BUILD_EXTRAS([Extra Datasets])
  STAGE_BUILD-- Job -->BUILD_METRICS([MTTL Metrics])
  STAGE_BUILD-- Job -->BUILD_ROADMAP([Roadmap])
  STAGE_BUILD-- Job -->BUILD_Docs([Docs])

  BUILD_MTTL-->STAGE_TEST[Stage: Test]
  BUILD_TTL-->STAGE_TEST[Stage: Test]
  BUILD_EXTRAS-->STAGE_TEST[Stage: Test]
  BUILD_METRICS-->STAGE_TEST[Stage: Test]
  BUILD_ROADMAP-->STAGE_TEST[Stage: Test]
  BUILD_Docs-->STAGE_TEST[Stage: Test]

  STAGE_TEST-- Job -->TEST_DUPS([Test Identical KSATs])
  STAGE_TEST-- Job -->TEST_FIND([Test MTTL find])
  STAGE_TEST-- Job -->TEST_INSERT([Test MTTL insert])
  STAGE_TEST-- Job -->TEST_MODIFY([Test MTTL modify])
  STAGE_TEST-- Job -->TEST_DELETE([Test MTTL delete])
  STAGE_TEST-- Job -->TEST_PAGES([Test Pages])

  TEST_DUPS-->STAGE_DEPLOY[Stage: Deploy]
  TEST_FIND-->STAGE_DEPLOY[Stage: Deploy]
  TEST_INSERT-->STAGE_DEPLOY[Stage: Deploy]
  TEST_MODIFY-->STAGE_DEPLOY[Stage: Deploy]
  TEST_DELETE-->STAGE_DEPLOY[Stage: Deploy]
  TEST_PAGES-->STAGE_DEPLOY[Stage: Deploy]

  STAGE_DEPLOY-- Job -->DEPLOY_PAGES([Deploy to GitLab Static Pages])

  DEPLOY_PAGES-->FINISH>User can see MTTL changes]
Clone repository
  • Bugs History
    • React Router with GitLab Static Pages
  • Crazy Helpful Regex
  • Design Docs
    • Design for Implementation of Metric Data collection processing
    • Metric Data GAPs
  • Feedback Surveys
  • Home
  • How to's (Developer)
  • How to's (Developer)
    • 1. Development Environment Setup
    • 2. Run the Pipeline in the Dev Environment
    • 3. Run the Frontend in the Dev Environment
    • 4. Validate Data
    • 5. Database Schema
    • 6. MongoDB Querying
    • 7. mttl.py Usage
    • 8. Update Performance Questions
View All Pages