From 65582587f539b86baa82a0dc1d5ca77204449f13 Mon Sep 17 00:00:00 2001 From: Keith Casko Date: Fri, 2 Oct 2026 09:29:22 -0400 Subject: [PATCH] Update portfolio website --- README.md | 107 ++ assets/images/bytegeist-architecture.png | Bin 1636039 -> 0 bytes assets/images/bytegeist-logo.png | Bin 1480167 -> 0 bytes .../portfolio-authentik-applications.png | Bin 95682 -> 0 bytes .../portfolio-cloud-dashboard-overview.png | Bin 152400 -> 0 bytes .../portfolio-cloud-dashboard-services.png | Bin 93785 -> 0 bytes .../images/portfolio-crowdsec-decisions.png | Bin 23937 -> 0 bytes assets/images/portfolio-gitea-dashboard.png | Bin 114618 -> 0 bytes assets/images/portfolio-grafana-logs.png | Bin 322337 -> 0 bytes .../images/portfolio-grafana-operations.png | Bin 197718 -> 0 bytes .../portfolio-wiki-disaster-recovery.png | Bin 176440 -> 0 bytes .../images/portfolio-woodpecker-pipeline.png | Bin 65561 -> 0 bytes assets/screenshots/README.md | 4 + assets/screenshots/aws-tracker.png | Bin 0 -> 46655 bytes .../screenshots/bytegeist-control-plane.png | Bin 0 -> 291855 bytes .../bytegeist-support-01-incident-queue.png | Bin 0 -> 542273 bytes .../bytegeist-support-02-ai-coach-s3.png | Bin 0 -> 134276 bytes .../bytegeist-support-03-incident-review.png | Bin 0 -> 214023 bytes ...-support-04-learner-performance-report.png | Bin 0 -> 379354 bytes assets/screenshots/bytegeist-support-live.png | Bin 0 -> 607304 bytes assets/screenshots/bytegeist-support.png | Bin 0 -> 542273 bytes css/styles.css | 527 +++++++ deploy-test.txt | 1 - index.html | 862 +++++++----- index.old.html | 1232 ++++++++++++++++ js/main.js | 21 + script.js | 42 - style.css | 1251 ----------------- 28 files changed, 2371 insertions(+), 1676 deletions(-) create mode 100644 README.md delete mode 100644 assets/images/bytegeist-architecture.png delete mode 100644 assets/images/bytegeist-logo.png delete mode 100644 assets/images/portfolio-authentik-applications.png delete mode 100644 assets/images/portfolio-cloud-dashboard-overview.png delete mode 100644 assets/images/portfolio-cloud-dashboard-services.png delete mode 100644 assets/images/portfolio-crowdsec-decisions.png delete mode 100644 assets/images/portfolio-gitea-dashboard.png delete mode 100644 assets/images/portfolio-grafana-logs.png delete mode 100644 assets/images/portfolio-grafana-operations.png delete mode 100644 assets/images/portfolio-wiki-disaster-recovery.png delete mode 100644 assets/images/portfolio-woodpecker-pipeline.png create mode 100644 assets/screenshots/README.md create mode 100644 assets/screenshots/aws-tracker.png create mode 100644 assets/screenshots/bytegeist-control-plane.png create mode 100644 assets/screenshots/bytegeist-support-01-incident-queue.png create mode 100644 assets/screenshots/bytegeist-support-02-ai-coach-s3.png create mode 100644 assets/screenshots/bytegeist-support-03-incident-review.png create mode 100644 assets/screenshots/bytegeist-support-04-learner-performance-report.png create mode 100644 assets/screenshots/bytegeist-support-live.png create mode 100644 assets/screenshots/bytegeist-support.png create mode 100644 css/styles.css delete mode 100644 deploy-test.txt create mode 100644 index.old.html create mode 100644 js/main.js delete mode 100644 script.js delete mode 100644 style.css diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f07585 --- /dev/null +++ b/README.md @@ -0,0 +1,107 @@ +# Keith Casko — Portfolio + +A static personal portfolio for Keith Casko, targeting IT Support, Help Desk, +Desktop Support, Junior SysAdmin, and Cloud Support / Operations roles. + +Stack: plain HTML, CSS, and a tiny vanilla JS file (mobile nav + footer year). +No build step. No frameworks. + +## Run locally + +Any static server works. Easiest options from the project root: + + # Python 3 + python -m http.server 8080 + + # Node (if installed) + npx serve . + +Then open http://localhost:8080 + +Opening `index.html` directly in a browser also works; using a local server +is only needed if you later add fetches or routing. + +## Project structure + + keith-portfolio/ + ├── index.html + ├── css/ + │ └── styles.css + ├── js/ + │ └── main.js + ├── assets/ + │ ├── images/ # portrait, hero rack/workstation photos + │ ├── screenshots/ # project screenshots + │ └── resume/ # keith-casko-resume.pdf + └── README.md + +## Things to replace before publishing + +Every spot that needs a real value is marked with `REPLACE` in an HTML +comment. Search the project for `REPLACE` to find all of them. The main ones: + +- **Resume PDF** — put the file at `assets/resume/keith-casko-resume.pdf` + (two links in `index.html`: hero "Download Resume" button and footer). +- **GitHub** — footer link, replace `https://github.com/REPLACE_ME`. +- **LinkedIn** — footer link, replace `https://www.linkedin.com/in/REPLACE_ME`. +- **Email** — footer and Contact section, replace `you@example.com` + (two `mailto:` links). +- **Project links** — four `View Project ›` links in the Featured Projects + section currently point to `#`. Point each to the real repo or live demo. + +## Screenshots & images + +Drop the real files into these paths and remove the placeholder `
`s +in `index.html` (replace with `…`): + +- `assets/images/hero-rack.jpg` — homelab, rack, or workstation photo +- `assets/images/portrait.jpg` — portrait photo for the About section +- `assets/screenshots/bytegeist-ad.jpg` — Windows Server / AD lab screenshot +- `assets/screenshots/bytegeist-support.jpg` — Support Lab app screenshot +- `assets/screenshots/linux-docker.jpg` — Grafana / Portainer / Uptime Kuma +- `assets/screenshots/aws-tracker.jpg` — AWS Cloud Study Tracker UI + +Keep images reasonably sized (e.g. 1600px wide max, JPEG quality ~80, or +WebP) for fast loads. + +## Deploy + +### AWS Amplify (manual deploy, no Git connection required) + +1. In the Amplify Console, choose **Host web app → Deploy without Git**. +2. Zip the whole project folder (`index.html`, `css/`, `js/`, `assets/`) + and drag the zip into the uploader. Name the environment e.g. `prod`. +3. Amplify gives you an `*.amplifyapp.com` URL. To use a custom domain, + open the app → **Domain management → Add domain**. + +For redeploys, upload a new zip to the same environment. + +### GitHub Pages + +1. Push this folder to a GitHub repo (e.g. `keith-portfolio`). +2. Repo → **Settings → Pages**. +3. Source: **Deploy from a branch**. Branch: `main` (or `master`), + folder: `/ (root)`. Save. +4. GitHub publishes to `https://.github.io/keith-portfolio/`. + Allow a minute for the first build. + +For a custom domain, add a `CNAME` file at the project root containing +the domain, and configure DNS to point at GitHub Pages. + +### Vercel + +1. Install the CLI once: `npm i -g vercel`. +2. From the project root: `vercel` (follow prompts) and then `vercel --prod`. + +Or connect the GitHub repo in the Vercel dashboard — framework preset is +**Other**; no build command; output directory is `.` (the repo root). + +## Accessibility & performance notes + +- Semantic HTML (`
`, `