Materials for Fullstack Academy AI/ML cohort 2605.
Course site: https://gperdrizet.github.io/fullstack-2605
The course site is built with MkDocs using the Material theme. Source pages live in docs/ and are configured in mkdocs.yml. The site deploys automatically to GitHub Pages via GitHub Actions on every push to main.
docs/
├── index.md # homepage
├── notebooks.md # notebook table
├── datasets.md # dataset table
├── assets/
│ └── logo.png # Fullstack Academy logo
├── stylesheets/
│ └── extra.css # custom brand colors
└── resources/
├── documentation-links.md
├── linux-commands.md
├── notebook-shortcuts.md
├── dev-tools-install-guide.md
└── dev-container-guide.md
Install dependencies:
pip install mkdocs-materialServe the site locally with live reload:
mkdocs serveDataset files in data/ are stored with Git LFS. Install Git LFS before cloning so the files are downloaded correctly:
# Install (Ubuntu/Debian)
sudo apt install git-lfs
# Install (macOS)
brew install git-lfs
# Enable in your Git install (once per machine)
git lfs installIf you already cloned the repo without Git LFS, run git lfs pull to fetch the data files.
Then open http://127.0.0.1:8000 in your browser. Changes to any file in docs/ or mkdocs.yml are reflected immediately.
All changes to the course site should go through a pull request rather than pushing directly to main. The recommended workflow is:
- Create or switch to a
devbranch (or any feature branch):git checkout -b dev
- Make your changes, commit, and push:
git add . git commit -m "describe your changes" git push origin dev
- Open a pull request from your branch into
mainon GitHub. Write a short description of what changed — this text is included in the Slack notification sent to students. - Merge the pull request.
Merging into main triggers two automated workflows in sequence:
- Publish to GitHub Pages (
.github/workflows/publish.yml): runsmkdocs gh-deploy --force, which builds the site and pushes it to thegh-pagesbranch. - pages-build-deployment (managed by GitHub Pages): picks up the new
gh-pagescontent and deploys it to the live CDN. This step typically takes 5–6 minutes.
Once both workflows complete successfully, a Slack notification is sent to the course channel (see below).
When a pull request is merged to main and the GitHub Pages deployment succeeds, the workflow at .github/workflows/slack-pages-deployed.yml posts a message to the course Slack channel. The message includes the PR description, so students know what was updated.
The workflow posts via a Slack Workflow Builder webhook — no bot or admin approval required, since Workflow Builder is available to all workspace members.
- In Slack, open Tools → Workflow Builder and create a new workflow with a Webhook trigger.
- Define three text input variables:
author,details, andsite_url. - Add a Send a message step to post to your channel using those variables.
- Publish the workflow and copy the webhook URL (it starts with
https://hooks.slack.com/workflows/...). - Add the URL as a repository secret:
- Go to the repository on GitHub → Settings → Secrets and variables → Actions → New repository secret.
- Name:
SLACK_WEBHOOK_URL - Value: paste the webhook URL.
The notification is skipped automatically if the deployment fails or if the push to main was not from a merged pull request (e.g. a direct push).