IT-Journey Repository Structure

This document provides a comprehensive overview of the IT-Journey repository structure, explaining the purpose of each directory and major component.

Directory Tree Overview

it-journey/
├── .github/                    # GitHub configuration and workflows
│   ├── workflows/             # CI/CD automation workflows
│   ├── instructions/          # AI assistant instructions
│   ├── ISSUE_TEMPLATE/        # Issue templates
│   └── copilot-instructions.md
├── _config.yml                # Main Jekyll configuration
├── _config_dev.yml           # Development configuration
├── _data/                    # Site data files
│   ├── navigation/           # Navigation configurations
│   └── ui-text.yml          # UI text and translations
├── _includes/                # Reusable HTML components
├── _layouts/                 # Page layout templates
├── assets/                   # Static assets
│   ├── css/                 # Stylesheets
│   ├── js/                  # JavaScript files
│   ├── images/              # Image files
│   └── svg/                 # SVG graphics
├── docs/                     # Developer documentation (THIS)
│   ├── architecture/        # System design and structure
│   ├── setup/              # Installation and configuration
│   ├── workflows/          # CI/CD documentation
│   ├── scripts/            # Script documentation
│   ├── testing/            # Testing framework docs
│   └── standards/          # Coding and content standards
├── pages/                    # Content collections
│   ├── _posts/             # Blog posts and journals
│   ├── _docs/              # Learning resources
│   ├── _quests/            # Gamified learning experiences
│   ├── _notebooks/         # Jupyter notebooks
│   ├── _notes/             # Personal notes
│   ├── _about/             # About pages
│   └── _quickstart/        # Quick start guides
├── scripts/                  # Automation scripts
│   ├── core/               # Core utilities
│   ├── development/        # Development tools
│   └── deployment/         # Deployment automation
├── test/                     # Testing infrastructure
│   ├── hyperlink-guardian/ # Link validation system
│   └── quest-validator/    # Quest content validator
├── Gemfile                   # Ruby dependencies
├── package.json             # Node.js dependencies (if any)
├── docker-compose.yml       # Docker development setup
├── Dockerfile              # Container image definition
└── README.md               # Main project README

Core Directories

.github/

GitHub-specific configuration and automation.

Key Files:

Purpose: Automates testing, validation, deployment, and provides context for AI tools.

_config.yml & _config_dev.yml

Jekyll configuration files defining site structure, collections, and behavior.

_config.yml:

_config_dev.yml:

_data/

Structured data files for site content that isn’t posts or pages.

Contents:

Usage: Accessible via site.data in Liquid templates.

_includes/

Reusable HTML/Liquid components included in layouts and pages.

Contents:

Purpose: DRY principle - write once, include anywhere.

_layouts/

Page templates that define structure and presentation.

Key Layouts:

Purpose: Consistent page structure across the site.

assets/

Static files served to browsers.

Structure:

Asset Management:

Content Collections (pages/)

All user-facing content lives in the pages/ directory, organized into Jekyll collections.

pages/_posts/

Blog posts and journal entries following Jekyll conventions.

Naming Convention: YYYY-MM-DD-title-slug.md

Purpose:

Current Count: 85 markdown files

pages/_docs/

Reference documentation and learning resources for external tools.

Structure:

Purpose:

Note: This is separate from docs/ (developer documentation).

pages/_quests/

Gamified learning experiences with fantasy themes and progressive difficulty.

Key Features:

Contents: 53 markdown files + supporting scripts (14 .sh, 3 .ps1, 2 .ipynb, 2 .yml)

Purpose: Transform technical learning into engaging adventures.

pages/_notebooks/

Jupyter notebooks for interactive code examples and data analysis.

Contents: 6 .ipynb files + 5 markdown files

Purpose:

pages/_notes/

Personal development notes and work-in-progress content.

Contents: 33 markdown + 2 Python + 2 Ruby files

Purpose:

pages/_about/

Information about the IT-Journey project and site.

Contents: 12 markdown + 2 YAML + 1 text file

Purpose:

pages/_quickstart/

Quick reference guides for rapid learning.

Contents: 6 markdown files

Purpose:

Development Infrastructure

docs/ (Developer Documentation)

YOU ARE HERE - Technical documentation for contributors and AI agents.

Structure:

Purpose: Enable effective contribution by developers and AI agents.

scripts/

Automation tools and development utilities.

Organization:

Purpose: Automate repetitive tasks, ensure quality, streamline development.

test/

Testing frameworks and validation tools.

Components:

Purpose: Automated quality assurance and proactive monitoring.

Configuration Files

Gemfile

Ruby gem dependencies for Jekyll and plugins.

Key Dependencies:

docker-compose.yml & Dockerfile

Container-based development environment.

Benefits:

frontmatter.json

Frontmatter schema definitions for content validation.

Purpose: Define required and optional fields for different content types.

File Naming Conventions

Posts

Format: YYYY-MM-DD-slug-with-hyphens.md

Example: 2025-10-13-el-capitan-boot-loader.md

Quests

Format: descriptive-quest-name.md

Example: link-to-the-future-automated-hyperlink-checking-and-error-reporting.md

Docs

Format: tool-topic-description.md or tool-specific-feature.md

Example: jekyll-diagram-with-mermaid.md

Scripts

Format: descriptive-action-name.sh or descriptive-action-name.py

Example: environment-setup.sh, link-checker.py

Documentation

Format: UPPERCASE_TOPIC.md for main docs, descriptive-name.md for guides

Example: REPOSITORY_STRUCTURE.md, setup-guide.md

Content Organization Principles

Separation of Concerns

Collection-Based Organization

Asset Management

Version Control

Build Process

Static Site Generation

  1. Jekyll reads _config.yml configuration
  2. Processes collections from pages/ directory
  3. Applies layouts from _layouts/ (theme + local)
  4. Includes components from _includes/
  5. Compiles SCSS to CSS
  6. Generates static HTML in _site/

Local Development

bundle exec jekyll serve --config _config_dev.yml

Production Build

JEKYLL_ENV=production bundle exec jekyll build

Docker Development

docker-compose up

Navigation is defined in _data/navigation/*.yml files:

These are referenced in _config.yml and used by layouts to generate navigation menus.

Remote Theme Integration

IT-Journey uses the zer0-mistakes theme as a remote theme:

Next Steps


Last Updated: 2025-10-13
Version: 1.0.0