diff --git a/src/content/projects/example-project-1/cover.png b/src/content/projects/example-project-1/cover.png new file mode 100644 index 0000000..00477c2 Binary files /dev/null and b/src/content/projects/example-project-1/cover.png differ diff --git a/src/content/projects/example-project-1/index.md b/src/content/projects/example-project-1/index.md new file mode 100644 index 0000000..f89c5fa --- /dev/null +++ b/src/content/projects/example-project-1/index.md @@ -0,0 +1,30 @@ +--- +title: 'Example Project 1' +description: 'An example project demonstrating the frontmatter shape for a showcase entry.' +builtBy: + - name: 'Example Student 1' + url: 'https://example.com/student-1' + - name: 'Example Student 3' + url: 'https://example.com/student-3' + - name: 'Example Student 4' + url: 'https://example.com/student-4' +tech: ['TypeScript', 'pnpm'] +year: 2021 +domains: ['web', 'cybersecurity'] +github: 'https://github.com/example/example-project-1' +cover: './cover.png' +--- + +## Overview + +This is an example project entry that demonstrates the expected frontmatter shape for all projects in this showcase. Every field above is required (except `deploy`, which is optional), and the `cover` image co-located here will be optimized at build time via `astro:assets`. + +## What it does + +The project serves as a structural template. When a contributor adds their own project, they create a new folder under `src/content/projects/`, drop in their `index.md` and a cover image, and open a pull request. Using one folder per project means multiple contributors can add entries simultaneously without touching the same file, eliminating most merge conflicts. + +## Technical notes + +- The `domains` field drives filtering on the gallery page. It's an array of one or more categories from a fixed set: `web`, `mobile`, `ai-ml`, `cybersecurity`, `game-dev`, `hardware`, `systems`, `infrastructure` (e.g. a cybersecurity-focused web app could be `['web', 'cybersecurity']`). An unrecognized value fails the build. +- The `tech` array accepts any freeform strings — the gallery page aggregates them into a filter list at build time. +- `deploy` is omitted when a project has no public deployment (library, CLI tool, etc.). diff --git a/src/content/projects/example-project-2/cover.png b/src/content/projects/example-project-2/cover.png new file mode 100644 index 0000000..d71edce Binary files /dev/null and b/src/content/projects/example-project-2/cover.png differ diff --git a/src/content/projects/example-project-2/index.md b/src/content/projects/example-project-2/index.md new file mode 100644 index 0000000..5e4c085 --- /dev/null +++ b/src/content/projects/example-project-2/index.md @@ -0,0 +1,27 @@ +--- +title: 'Example Project 2' +description: 'A sample entry illustrating how a single-author project is structured.' +builtBy: + - name: 'Example Student 2' + url: 'https://example.com/student-2' +tech: ['TypeScript', 'Astro', 'pnpm'] +year: 2022 +domains: ['mobile'] +github: 'https://github.com/example/example-project-2' +deploy: 'https://example-project-2.pages.dev' +cover: './cover.png' +--- + +## Overview + +This is an example project entry that demonstrates the expected frontmatter shape for all projects in this showcase. Every field above is required (except `deploy`, which is optional), and the `cover` image co-located here will be optimized at build time via `astro:assets`. + +## What it does + +The project serves as a structural template. When a contributor adds their own project, they create a new folder under `src/content/projects/`, drop in their `index.md` and a cover image, and open a pull request. Using one folder per project means multiple contributors can add entries simultaneously without touching the same file, eliminating most merge conflicts. + +## Technical notes + +- The `domains` field drives filtering on the gallery page. It's an array of one or more categories from a fixed set: `web`, `mobile`, `ai-ml`, `cybersecurity`, `game-dev`, `hardware`, `systems`, `infrastructure` (e.g. a cybersecurity-focused web app could be `['web', 'cybersecurity']`). An unrecognized value fails the build. +- The `tech` array accepts any freeform strings — the gallery page aggregates them into a filter list at build time. +- `deploy` is omitted when a project has no public deployment (library, CLI tool, etc.). diff --git a/src/content/projects/example-project-3/cover.png b/src/content/projects/example-project-3/cover.png new file mode 100644 index 0000000..c60d610 Binary files /dev/null and b/src/content/projects/example-project-3/cover.png differ diff --git a/src/content/projects/example-project-3/index.md b/src/content/projects/example-project-3/index.md new file mode 100644 index 0000000..3bfccbd --- /dev/null +++ b/src/content/projects/example-project-3/index.md @@ -0,0 +1,29 @@ +--- +title: 'Example Project 3' +description: 'A placeholder project showing multiple authors across mixed domains.' +builtBy: + - name: 'Example Student 3' + url: 'https://example.com/student-3' + - name: 'Example Student 4' + url: 'https://example.com/student-4' + - name: 'Example Student 6' +tech: ['TypeScript', 'Python', 'pnpm'] +year: 2025 +domains: ['ai-ml', 'web'] +github: 'https://github.com/example/example-project-3' +cover: './cover.png' +--- + +## Overview + +This is an example project entry that demonstrates the expected frontmatter shape for all projects in this showcase. Every field above is required (except `deploy`, which is optional), and the `cover` image co-located here will be optimized at build time via `astro:assets`. + +## What it does + +The project serves as a structural template. When a contributor adds their own project, they create a new folder under `src/content/projects/`, drop in their `index.md` and a cover image, and open a pull request. Using one folder per project means multiple contributors can add entries simultaneously without touching the same file, eliminating most merge conflicts. + +## Technical notes + +- The `domains` field drives filtering on the gallery page. It's an array of one or more categories from a fixed set: `web`, `mobile`, `ai-ml`, `cybersecurity`, `game-dev`, `hardware`, `systems`, `infrastructure` (e.g. a cybersecurity-focused web app could be `['web', 'cybersecurity']`). An unrecognized value fails the build. +- The `tech` array accepts any freeform strings — the gallery page aggregates them into a filter list at build time. +- `deploy` is omitted when a project has no public deployment (library, CLI tool, etc.). diff --git a/src/content/projects/example-project-4/cover.png b/src/content/projects/example-project-4/cover.png new file mode 100644 index 0000000..94ad7c7 Binary files /dev/null and b/src/content/projects/example-project-4/cover.png differ diff --git a/src/content/projects/example-project-4/index.md b/src/content/projects/example-project-4/index.md new file mode 100644 index 0000000..65de38b --- /dev/null +++ b/src/content/projects/example-project-4/index.md @@ -0,0 +1,28 @@ +--- +title: 'Example Project 4' +description: 'An example entry with a live deployment link and a minimal tech stack.' +builtBy: + - name: 'Example Student 4' + url: 'https://example.com/student-4' + - name: 'Example Student 6' +tech: ['TypeScript'] +year: 2022 +domains: ['web'] +github: 'https://github.com/example/example-project-4' +deploy: 'https://example-project-4.pages.dev' +cover: './cover.png' +--- + +## Overview + +This is an example project entry that demonstrates the expected frontmatter shape for all projects in this showcase. Every field above is required (except `deploy`, which is optional), and the `cover` image co-located here will be optimized at build time via `astro:assets`. + +## What it does + +The project serves as a structural template. When a contributor adds their own project, they create a new folder under `src/content/projects/`, drop in their `index.md` and a cover image, and open a pull request. Using one folder per project means multiple contributors can add entries simultaneously without touching the same file, eliminating most merge conflicts. + +## Technical notes + +- The `domains` field drives filtering on the gallery page. It's an array of one or more categories from a fixed set: `web`, `mobile`, `ai-ml`, `cybersecurity`, `game-dev`, `hardware`, `systems`, `infrastructure` (e.g. a cybersecurity-focused web app could be `['web', 'cybersecurity']`). An unrecognized value fails the build. +- The `tech` array accepts any freeform strings — the gallery page aggregates them into a filter list at build time. +- `deploy` is omitted when a project has no public deployment (library, CLI tool, etc.). diff --git a/src/content/projects/example-project-5/cover.png b/src/content/projects/example-project-5/cover.png new file mode 100644 index 0000000..cd0d2c9 Binary files /dev/null and b/src/content/projects/example-project-5/cover.png differ diff --git a/src/content/projects/example-project-5/index.md b/src/content/projects/example-project-5/index.md new file mode 100644 index 0000000..0ebb50f --- /dev/null +++ b/src/content/projects/example-project-5/index.md @@ -0,0 +1,29 @@ +--- +title: 'Example Project 5' +description: 'A sample game-dev project used to demonstrate the gallery layout.' +builtBy: + - name: 'Example Student 5' + url: 'https://example.com/student-5' + - name: 'Example Student 8' + url: 'https://example.com/student-8' +tech: ['Astro', 'pnpm'] +year: 2024 +domains: ['game-dev'] +github: 'https://github.com/example/example-project-5' +deploy: 'https://example-project-5.pages.dev' +cover: './cover.png' +--- + +## Overview + +This is an example project entry that demonstrates the expected frontmatter shape for all projects in this showcase. Every field above is required (except `deploy`, which is optional), and the `cover` image co-located here will be optimized at build time via `astro:assets`. + +## What it does + +The project serves as a structural template. When a contributor adds their own project, they create a new folder under `src/content/projects/`, drop in their `index.md` and a cover image, and open a pull request. Using one folder per project means multiple contributors can add entries simultaneously without touching the same file, eliminating most merge conflicts. + +## Technical notes + +- The `domains` field drives filtering on the gallery page. It's an array of one or more categories from a fixed set: `web`, `mobile`, `ai-ml`, `cybersecurity`, `game-dev`, `hardware`, `systems`, `infrastructure` (e.g. a cybersecurity-focused web app could be `['web', 'cybersecurity']`). An unrecognized value fails the build. +- The `tech` array accepts any freeform strings — the gallery page aggregates them into a filter list at build time. +- `deploy` is omitted when a project has no public deployment (library, CLI tool, etc.). diff --git a/src/content/projects/example-project-6/cover.png b/src/content/projects/example-project-6/cover.png new file mode 100644 index 0000000..2d022b6 Binary files /dev/null and b/src/content/projects/example-project-6/cover.png differ diff --git a/src/content/projects/example-project-6/index.md b/src/content/projects/example-project-6/index.md new file mode 100644 index 0000000..108173a --- /dev/null +++ b/src/content/projects/example-project-6/index.md @@ -0,0 +1,29 @@ +--- +title: 'Example Project 6' +description: 'A placeholder full-stack example spanning web and AI/ML domains.' +builtBy: + - name: 'Example Student 6' + url: 'https://example.com/student-6' + - name: 'Example Student 8' + url: 'https://example.com/student-8' +tech: ['TypeScript', 'C#', 'Python'] +year: 2025 +domains: ['web', 'ai-ml'] +github: 'https://github.com/example/example-project-6' +deploy: 'https://example-project-6.pages.dev' +cover: './cover.png' +--- + +## Overview + +This is an example project entry that demonstrates the expected frontmatter shape for all projects in this showcase. Every field above is required (except `deploy`, which is optional), and the `cover` image co-located here will be optimized at build time via `astro:assets`. + +## What it does + +The project serves as a structural template. When a contributor adds their own project, they create a new folder under `src/content/projects/`, drop in their `index.md` and a cover image, and open a pull request. Using one folder per project means multiple contributors can add entries simultaneously without touching the same file, eliminating most merge conflicts. + +## Technical notes + +- The `domains` field drives filtering on the gallery page. It's an array of one or more categories from a fixed set: `web`, `mobile`, `ai-ml`, `cybersecurity`, `game-dev`, `hardware`, `systems`, `infrastructure` (e.g. a cybersecurity-focused web app could be `['web', 'cybersecurity']`). An unrecognized value fails the build. +- The `tech` array accepts any freeform strings — the gallery page aggregates them into a filter list at build time. +- `deploy` is omitted when a project has no public deployment (library, CLI tool, etc.). diff --git a/src/content/projects/example-project-7/cover.png b/src/content/projects/example-project-7/cover.png new file mode 100644 index 0000000..5fbc72f Binary files /dev/null and b/src/content/projects/example-project-7/cover.png differ diff --git a/src/content/projects/example-project-7/index.md b/src/content/projects/example-project-7/index.md new file mode 100644 index 0000000..36f0bdc --- /dev/null +++ b/src/content/projects/example-project-7/index.md @@ -0,0 +1,26 @@ +--- +title: 'Example Project 7' +description: 'An example project covering the infrastructure and hardware categories.' +builtBy: + - name: 'Example Student 7' + url: 'https://example.com/student-7' +tech: ['TypeScript', 'Java', 'Rust'] +year: 2024 +domains: ['infrastructure', 'hardware'] +github: 'https://github.com/example/example-project-7' +cover: './cover.png' +--- + +## Overview + +This is an example project entry that demonstrates the expected frontmatter shape for all projects in this showcase. Every field above is required (except `deploy`, which is optional), and the `cover` image co-located here will be optimized at build time via `astro:assets`. + +## What it does + +The project serves as a structural template. When a contributor adds their own project, they create a new folder under `src/content/projects/`, drop in their `index.md` and a cover image, and open a pull request. Using one folder per project means multiple contributors can add entries simultaneously without touching the same file, eliminating most merge conflicts. + +## Technical notes + +- The `domains` field drives filtering on the gallery page. It's an array of one or more categories from a fixed set: `web`, `mobile`, `ai-ml`, `cybersecurity`, `game-dev`, `hardware`, `systems`, `infrastructure` (e.g. a cybersecurity-focused web app could be `['web', 'cybersecurity']`). An unrecognized value fails the build. +- The `tech` array accepts any freeform strings — the gallery page aggregates them into a filter list at build time. +- `deploy` is omitted when a project has no public deployment (library, CLI tool, etc.). diff --git a/src/content/projects/example-project-8/cover.png b/src/content/projects/example-project-8/cover.png new file mode 100644 index 0000000..0a535ce Binary files /dev/null and b/src/content/projects/example-project-8/cover.png differ diff --git a/src/content/projects/example-project-8/index.md b/src/content/projects/example-project-8/index.md new file mode 100644 index 0000000..c3ee606 --- /dev/null +++ b/src/content/projects/example-project-8/index.md @@ -0,0 +1,28 @@ +--- +title: 'Example Project 8' +description: 'A sample web project used to exercise gallery filtering and search.' +builtBy: + - name: 'Example Student 8' + url: 'https://example.com/student-8' + - name: 'Example Student 6' +tech: ['TypeScript', 'Astro', 'pnpm'] +year: 2021 +domains: ['web', 'systems'] +github: 'https://github.com/example/example-project-8' +deploy: 'https://example-project-8.pages.dev' +cover: './cover.png' +--- + +## Overview + +This is an example project entry that demonstrates the expected frontmatter shape for all projects in this showcase. Every field above is required (except `deploy`, which is optional), and the `cover` image co-located here will be optimized at build time via `astro:assets`. + +## What it does + +The project serves as a structural template. When a contributor adds their own project, they create a new folder under `src/content/projects/`, drop in their `index.md` and a cover image, and open a pull request. Using one folder per project means multiple contributors can add entries simultaneously without touching the same file, eliminating most merge conflicts. + +## Technical notes + +- The `domains` field drives filtering on the gallery page. It's an array of one or more categories from a fixed set: `web`, `mobile`, `ai-ml`, `cybersecurity`, `game-dev`, `hardware`, `systems`, `infrastructure` (e.g. a cybersecurity-focused web app could be `['web', 'cybersecurity']`). An unrecognized value fails the build. +- The `tech` array accepts any freeform strings — the gallery page aggregates them into a filter list at build time. +- `deploy` is omitted when a project has no public deployment (library, CLI tool, etc.). diff --git a/src/content/webring/example-1-member.json b/src/content/webring/example-1-member.json new file mode 100644 index 0000000..2548914 --- /dev/null +++ b/src/content/webring/example-1-member.json @@ -0,0 +1,6 @@ +{ + "name": "Example Student 1", + "url": "https://example.com/student-1", + "year": 2022, + "inRing": true +} diff --git a/src/content/webring/example-2-member.json b/src/content/webring/example-2-member.json new file mode 100644 index 0000000..440987e --- /dev/null +++ b/src/content/webring/example-2-member.json @@ -0,0 +1,6 @@ +{ + "name": "Example Student 2", + "url": "https://example.com/student-2", + "year": 2022, + "inRing": false +} diff --git a/src/content/webring/example-3-member.json b/src/content/webring/example-3-member.json new file mode 100644 index 0000000..7d6aac5 --- /dev/null +++ b/src/content/webring/example-3-member.json @@ -0,0 +1,6 @@ +{ + "name": "Example Student 3", + "url": "https://example.com/student-3", + "year": 2025, + "inRing": true +} diff --git a/src/content/webring/example-4-member.json b/src/content/webring/example-4-member.json new file mode 100644 index 0000000..2acdba0 --- /dev/null +++ b/src/content/webring/example-4-member.json @@ -0,0 +1,6 @@ +{ + "name": "Example Student 4", + "url": "https://example.com/student-4", + "year": 2022, + "inRing": false +} diff --git a/src/content/webring/example-5-member.json b/src/content/webring/example-5-member.json new file mode 100644 index 0000000..7d72f07 --- /dev/null +++ b/src/content/webring/example-5-member.json @@ -0,0 +1,6 @@ +{ + "name": "Example Student 5", + "url": "https://example.com/student-5", + "year": 2024, + "inRing": true +} diff --git a/src/content/webring/example-6-member.json b/src/content/webring/example-6-member.json new file mode 100644 index 0000000..193c44c --- /dev/null +++ b/src/content/webring/example-6-member.json @@ -0,0 +1,6 @@ +{ + "name": "Example Student 6", + "url": "https://example.com/student-6", + "year": 2022, + "inRing": false +}