Skip to content

meshery-extensions/tcslabs-academy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

110 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

GitHub go.mod Go version

TCS Labs Academy

TCS Labs Academy is the official learning-content repository for TCS Labs on the Meshery Academy platform. It hosts structured learning paths, challenges, certifications, and Meshery infrastructure designs - teaching engineers to use LLMs and coding agents to design, deploy, operate, and govern cloud native infrastructure, with Meshery as the management plane.

πŸ—ΊοΈ Start with the Curriculum Master Outline - the complete map of learning paths, courses, the tiered AI certification (CAINA + CAINP), challenges, and importable designs.


πŸ“š Overview

Purpose Primary source of TCS Labs-specific Meshery learning content
Platform Runs on the shared Layer5 Academy platform
Authoring Markdown-based content with live local preview via Hugo
Content types Learning paths Β· Challenges Β· Certifications Β· Infrastructure designs
Curriculum 6 learning paths, tiered AI certification (CAINA + CAINP) - see CURRICULUM.md
Org ID 25d5053d-9be3-4af2-98dc-fcc3cf1cc4e1

πŸ› οΈ Prerequisites

Before you begin, ensure you have the following installed:

Tool Version Link
Hugo (extended) see go.mod Install Hugo
Go see go.mod Install Go
Node.js / npm see package.json Install Node.js
Git latest Install Git

πŸš€ Getting Started

1. Fork & Clone

# Fork this repository on GitHub, then clone your fork
git clone https://github.com/<your-username>/tcslabs-academy.git
cd tcslabs-academy

2. Install Dependencies

make setup

3. Run the Site Locally

Preferred: Start the Hugo development server with drafts and future content enabled, using the Makefile target:

make site

_Alternative: _ Or use the hugo CLI directly (at your own risk):

hugo server -D

The site will be available at http://localhost:1313/academy/ (or the port shown in your terminal).

Note: The local preview uses basic styling. Full Academy branding is applied after content is integrated into the cloud platform.

4. Other Useful Commands

Command Description
make setup Install npm dependencies
make site Build and run site locally with draft and future content enabled
make build Build the site for production
make build-preview Build site for preview draft and future content enabled (honors BASEURL)
make clean Clear build cache and restart the dev server
make lint-fix Fix Markdown linting issues with markdownlint-cli2
make check-go Verify Go is installed locally
make theme-update Update the academy-theme Hugo module to the latest version

πŸ“ Repository Structure

tcslabs-academy/
β”œβ”€β”€ .github/                  # GitHub workflows, issue templates, PR templates
β”‚   β”œβ”€β”€ build/                # Makefile includes
β”‚   β”œβ”€β”€ readme/images/        # README assets
β”‚   β”œβ”€β”€ workflows/            # CI/CD pipelines
β”‚   └── PULL_REQUEST_TEMPLATE.md
β”œβ”€β”€ assets/json/              # JSON data assets
β”œβ”€β”€ content/                  # πŸ“ All learning content lives here
β”‚   β”œβ”€β”€ _index.md             # Site root page
β”‚   β”œβ”€β”€ learning-paths/       # Learning paths scoped by org ID
β”‚   β”œβ”€β”€ certifications/       # Certification content
β”‚   └── challenges/           # Challenge content
β”œβ”€β”€ designs/                  # Meshery infrastructure designs (YAML)
β”œβ”€β”€ layouts/                  # Hugo layout overrides & shortcodes
β”‚   β”œβ”€β”€ _partials/            # Partial templates
β”‚   └── shortcodes/           # Custom Hugo shortcodes
β”œβ”€β”€ public/                   # Generated site output (git-ignored)
β”œβ”€β”€ resources/                # Hugo resource cache
β”œβ”€β”€ go.mod / go.sum           # Go module (pulls academy-theme)
β”œβ”€β”€ hugo.yaml                 # Hugo configuration
β”œβ”€β”€ Makefile                  # Build & dev targets
β”œβ”€β”€ package.json              # Node.js dependencies
└── README.md                 # ← You are here

✍️ Content Authoring

Content Hierarchy

The Academy content follows this structure: Learning Path β†’ Course β†’ Chapter β†’ Lesson.

content/
└── learning-paths/
    β”œβ”€β”€ _index.md
    └── 25d5053d-9be3-4af2-98dc-fcc3cf1cc4e1/   # TCS Labs org UID
        └── <your-learning-path>/
            β”œβ”€β”€ _index.md
            └── <your-course>/
                β”œβ”€β”€ _index.md
                └── content/
                    β”œβ”€β”€ lesson-1.md
                    └── lesson-2.md

How to Add an Image

  1. Place your image files directly in the same directory as your markdown content (Page Bundling method):
content/learning-paths/<orgID>/
└── your-course/
    └── your-module/
        β”œβ”€β”€ _index.md
        └── meshery-logo.png

How to Add a Video

Embed videos in a visually distinct card using:

{{</*card title="Video: Example" */>}}
<video width="100%" height="100%" controls>
    <source src="https://example.com/your-video.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>
{{</* /card*/>}}

How to Add a Meshery Design

  1. Place Design Assets Put your design files (e.g., cdn.js, design YAMLs) alongside your course or module content, ideally following the same directory conventions used for images.

  2. Embed Using the meshery-design-embed Shortcode In your markdown file, use:

{{< meshery-design-embed
id="embedded-design-0e3abb9c-39e7-4d09-b46f-26a0238c3c3d"
src="cdn.js"
>}}
  • Replace id with the unique identifier for your design.
  • Replace src with the path to your JS asset responsible for rendering.

Always use these shortcodes for images, videos, and embedded designs. This keeps assets portable, ensures they resolve correctly for each organization, and integrates properly with the Academy platform’s build and deployment flow.

Adding Assessments

Assessment files use the Academy test layout. Question and option IDs must be unique within their scope.

---
title: "Assessment Example"
id: "assessment-example"
type: "test"
layout: "test"
passPercentage: 70
maxAttempts: 3
timeLimit: 30
numberOfQuestions: 1
questions:
  - id: "q1"
    text: "DigitalOcean Academy content is authored in Markdown."
    type: "true-false"
    marks: 1
    options:
      - id: "true"
        text: "True"
        isCorrect: true
      - id: "false"
        text: "False"
---

🀝 Contribution Workflow

We welcome contributions! Please follow the fork β†’ branch β†’ commit β†’ push β†’ pull request workflow:

Step-by-Step

  1. Fork this repository on GitHub.
  2. Clone your fork locally:
    git clone https://github.com/<your-username>/tcslabs-academy.git
    cd tcslabs-academy
  3. Create a branch for your changes:
    git checkout -b feature/<your-username>/<issue-number>
  4. Make your changes β€” add or edit content in content/, fix bugs, improve docs.
  5. Preview locally to verify:
    hugo server -D
  6. Commit with a sign-off (required by DCO):
    git commit -s -m "docs: describe your change"
  7. Push to your fork:
    git push origin feature/<your-username>/<issue-number>
  8. Open a Pull Request against the master branch of this repository.

For a detailed guide on the fork-and-pull workflow, see CONTRIBUTING-gitflow.md.

Important Guidelines


πŸ”— Related Repositories

Find other related academies by browsing the "meshery-academy" topic in GitHub. See Academies in Meshery Docs for more about these extensions.


πŸ“„ License

This repository is available as open source under the terms of the Apache 2.0 License.