Course-Framework
Reusable framework for creating academic courses with GitHub Pages
Information
| Property | Value |
|---|---|
| Language | Python |
| Stars | 0 |
| Forks | 0 |
| Watchers | 0 |
| Open Issues | 0 |
| License | No License |
| Created | 2025-12-30 |
| Last Updated | 2026-02-19 |
| Last Push | 2026-01-04 |
| Contributors | 1 |
| Default Branch | master |
| Visibility | private |
Notebooks
This repository contains 13 notebook(s):
| Notebook | Language | Type |
|---|---|---|
| L01_defi_exploration | PYTHON | jupyter |
| L02_smart_contracts | PYTHON | jupyter |
| L03_token_analysis | PYTHON | jupyter |
| L04_amm_mechanics | PYTHON | jupyter |
| L05_lending_analysis | PYTHON | jupyter |
| L06_stablecoin_analysis | PYTHON | jupyter |
| L07_yield_farming | PYTHON | jupyter |
| L08_derivatives | PYTHON | jupyter |
| L09_oracles | PYTHON | jupyter |
| L10_governance | PYTHON | jupyter |
| L11_security | PYTHON | jupyter |
| L12_layer2 | PYTHON | jupyter |
| LXX_notebook_template | PYTHON | jupyter |
Reproducibility
No specific reproducibility files found.
Status
- Issues: Enabled
- Wiki: Enabled
- Pages: Enabled
README
Course Framework
Live Demo: https://Digital-AI-Finance.github.io/Course-Framework/
A comprehensive, reusable framework for creating academic courses with GitHub Pages, featuring interactive quizzes, searchable glossary, and Beamer LaTeX slides.
Overview
This framework provides everything you need to create a professional academic course website with:
- Jekyll-based GitHub Pages site with Just the Docs theme
- 12-week course structure (customizable)
- Interactive quizzes with instant feedback
- Searchable glossary
- Dark/light mode toggle
- Responsive design for all devices
- Beamer LaTeX slide templates
- Jupyter notebook templates
- Chart generation scripts
- CI/CD workflows for automated deployment
Quick Start
Option 1: Interactive Mode
Follow the prompts to configure your course.
Option 2: Configuration File
- Copy
scripts/sample_config.yamltomy_course.yaml - Edit the configuration with your course details
- Run:
Option 3: Manual Setup
- Copy the
templates/folder to your new course directory - Replace all
{{PLACEHOLDER}}values with your content - Update
docs/_data/weeks.ymlwith your weekly content
Framework Structure
Course_Framework/
|-- README.md # This file
|-- FRAMEWORK_GUIDE.md # Detailed guide
|-- scripts/
| |-- create_course.py # Main course generator
| |-- add_week.py # Add weeks to existing course
| |-- generate_charts.py # Generate all chart PDFs
| |-- sample_config.yaml # Sample configuration
|-- templates/
| |-- docs/ # Jekyll site templates
| | |-- _config.yml # Jekyll configuration
| | |-- _data/ # Data files (weeks, quizzes, glossary)
| | |-- _includes/ # Reusable components (quiz, theme-toggle)
| | |-- _layouts/ # Page layouts (week.html)
| | |-- _sass/ # Custom SCSS styling
| | |-- weeks/ # Week pages (week-1.md to week-12.md)
| | |-- index.md # Home page
| | |-- syllabus.md # Course syllabus
| | |-- glossary.md # Searchable glossary
| | |-- quizzes.md # Interactive quizzes
| | |-- slides.md # Slides download page
| | |-- Gemfile # Ruby dependencies
| |-- .github/workflows/ # CI/CD workflows
| | |-- pages.yml # GitHub Pages deployment
| | |-- validate_charts.yml # Chart validation
| | |-- validate_notebooks.yml
| | |-- compile_slides.yml
| |-- lesson_template/ # Lesson folder template
| | |-- LXX_TOPIC_NAME.tex # Beamer slide template
| | |-- 01_chart_template/ # Chart folder template
| | |-- notebooks/ # Notebook templates
| | |-- exercises/ # Exercise templates
| | |-- readings/ # Reading guide templates
Generated Course Structure
After running the generator, your course will have this structure:
your-course/
|-- README.md
|-- requirements.txt
|-- .gitignore
|-- L01_Topic_Name/
| |-- L01_Topic_Name.tex # Beamer slides
| |-- L01_Topic_Name.pdf # Compiled PDF
| |-- 01_chart_name/
| | |-- chart.py # Chart script
| | |-- chart.pdf # Generated chart
| |-- notebooks/
| | |-- L01_notebook.ipynb
| |-- exercises/
| | |-- L01_Exercise.md
| |-- readings/
| | |-- L01_Reading_Guide.md
| |-- temp/ # LaTeX auxiliary files
|-- L02_Topic_Name/
|-- ...
|-- L12_Topic_Name/
|-- docs/ # GitHub Pages site
| |-- _config.yml
| |-- _data/
| | |-- weeks.yml
| | |-- quizzes.yml
| | |-- glossary.yml
| |-- index.md
| |-- ...
|-- .github/
| |-- workflows/
| |-- pages.yml
Customization
Colors
Edit templates/docs/_sass/color_schemes/custom.scss:
$primary-color: #3333B2; // Main brand color
$secondary-color: #0066CC; // Secondary color
$accent-color: #FF7F0E; // Accent/highlight color
Content
- Weeks: Edit
docs/_data/weeks.yml - Quizzes: Edit
docs/_data/quizzes.yml - Glossary: Edit
docs/_data/glossary.yml - Exercises: Edit
docs/_data/exercises.yml - Readings: Edit
docs/_data/readings.yml
Adding a New Week
Deployment
-
Push to GitHub:
-
Enable GitHub Pages:
- Go to repository Settings
- Navigate to Pages
-
Set source to "GitHub Actions"
-
Your site will be live at:
https://your-org.github.io/your-course/
Requirements
- Python 3.10+
- Ruby 3.2+ (for local Jekyll development)
- Required Python packages:
- PyYAML
- matplotlib
- numpy
- pandas
- jupyter
Install Python dependencies:
Local Development
To test the site locally:
Visit http://localhost:4000/your-course/
Features
Interactive Quizzes
Each week can have self-assessment quizzes defined in _data/quizzes.yml:
week1:
- question: "What is the answer?"
options:
- "Option A"
- "Option B (correct)"
- "Option C"
correct: 1
explanation: "Option B is correct because..."
Searchable Glossary
Terms are defined in _data/glossary.yml:
- term: "Term Name"
definition: "Definition of the term"
related: ["Related Term 1", "Related Term 2"]
week: 1
Chart Generation
Each chart has its own folder with a Python script:
# 01_chart_name/chart.py
import matplotlib.pyplot as plt
from pathlib import Path
# Standard configuration for slides
plt.rcParams.update({'font.size': 14, 'figure.figsize': (10, 6)})
# Your chart code here
fig, ax = plt.subplots()
# ...
plt.savefig(Path(__file__).parent / 'chart.pdf', dpi=300, bbox_inches='tight')
Generate all charts:
Beamer Slides
LaTeX template with consistent styling:
\documentclass[8pt,aspectratio=169]{beamer}
\usetheme{Madrid}
\definecolor{mlpurple}{RGB}{51,51,178}
% Include chart: \includegraphics[width=0.55\textwidth]{01_chart/chart.pdf}
CI/CD Workflows
The framework includes GitHub Actions workflows for:
- pages.yml: Automatic deployment to GitHub Pages
- validate_charts.yml: Test chart scripts
- validate_notebooks.yml: Validate Jupyter notebooks
- compile_slides.yml: Compile LaTeX slides
License
This framework is provided for educational use. Courses created using this framework can have their own license terms.
Contributing
Contributions welcome! Please open an issue or pull request.
Credits
Based on the structure of the Agentic Artificial Intelligence course.