https://github.com/gperdrizet/fullstack-2605
Materials for Fullstack Academy AI/ML cohort 2605
https://github.com/gperdrizet/fullstack-2605
ai-ml data-science machine-learning
Last synced: about 11 hours ago
JSON representation
Materials for Fullstack Academy AI/ML cohort 2605
- Host: GitHub
- URL: https://github.com/gperdrizet/fullstack-2605
- Owner: gperdrizet
- Created: 2026-05-13T02:16:13.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-30T03:13:15.000Z (7 days ago)
- Last Synced: 2026-06-30T05:08:54.748Z (7 days ago)
- Topics: ai-ml, data-science, machine-learning
- Language: Jupyter Notebook
- Homepage: https://gperdrizet.github.io/fullstack-2605/
- Size: 9.47 MB
- Stars: 3
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# fullstack-2605
[](https://github.com/gperdrizet/fullstack-2605/actions/workflows/publish.yml)
[](https://github.com/gperdrizet/fullstack-2605/actions/workflows/slack-pages-deployed.yml)
[](https://squidfunk.github.io/mkdocs-material/)
[](https://www.fullstackacademy.com/)
Materials for Fullstack Academy AI/ML cohort 2605.
Course site:
## Site overview
The course site is built with [MkDocs](https://www.mkdocs.org/) using the [Material theme](https://squidfunk.github.io/mkdocs-material/). 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
```
## Local development
Install dependencies:
```bash
pip install mkdocs-material
```
Serve the site locally with live reload:
```bash
mkdocs serve
```
## Datasets and Git LFS
Dataset files in `data/` are stored with [Git LFS](https://git-lfs.com/). Install Git LFS before cloning so the files are downloaded correctly:
```bash
# Install (Ubuntu/Debian)
sudo apt install git-lfs
# Install (macOS)
brew install git-lfs
# Enable in your Git install (once per machine)
git lfs install
```
If you already cloned the repo without Git LFS, run `git lfs pull` to fetch the data files.
Then open in your browser. Changes to any file in `docs/` or `mkdocs.yml` are reflected immediately.
## Deployment
All changes to the course site should go through a pull request rather than pushing directly to `main`. The recommended workflow is:
1. Create or switch to a `dev` branch (or any feature branch):
```bash
git checkout -b dev
```
2. Make your changes, commit, and push:
```bash
git add .
git commit -m "describe your changes"
git push origin dev
```
3. Open a pull request from your branch into `main` on GitHub. Write a short description of what changed — this text is included in the Slack notification sent to students.
4. Merge the pull request.
Merging into `main` triggers two automated workflows in sequence:
- **Publish to GitHub Pages** (`.github/workflows/publish.yml`): runs `mkdocs gh-deploy --force`, which builds the site and pushes it to the `gh-pages` branch.
- **pages-build-deployment** (managed by GitHub Pages): picks up the new `gh-pages` content 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).
## Slack notifications
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.
### Setup
1. In Slack, open **Tools → Workflow Builder** and create a new workflow with a **Webhook** trigger.
2. Define three text input variables: `author`, `details`, and `site_url`.
3. Add a **Send a message** step to post to your channel using those variables.
4. Publish the workflow and copy the webhook URL (it starts with `https://hooks.slack.com/workflows/...`).
5. 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).