diff --git a/.eleventy.js b/.eleventy.js
new file mode 100644
index 0000000..3dbcd17
--- /dev/null
+++ b/.eleventy.js
@@ -0,0 +1,17 @@
+module.exports = function (eleventyConfig) {
+ eleventyConfig.addShortcode("year", () => `${new Date().getFullYear()}`);
+ eleventyConfig.addPassthroughCopy("src/assets/images");
+ eleventyConfig.addPassthroughCopy({
+ "./src/site.webmanifest": "site.webmanifest",
+ });
+
+
+ return {
+ dir: {
+ input: "src",
+ data: "_data",
+ includes: "_includes",
+ layouts: "_layouts",
+ },
+ };
+};
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index aa29538..7cf49bf 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -5,20 +5,21 @@ on:
branches:
- main
paths:
- # mkdocs source
- "src/**"
- - "mkdocs.yml"
- # poetry source
- - "pyproject.toml"
- - "poetry.lock"
- # run updated workflows
+ - "package.json"
+ - "package-lock.json"
+ - "tailwind.config.js"
+ - "postcss.config.js"
+ - ".eleventy.js"
- ".github/workflows/**"
pull_request:
paths:
- "src/**"
- - "mkdocs.yml"
- - "pyproject.toml"
- - "poetry.lock"
+ - "package.json"
+ - "package-lock.json"
+ - "tailwind.config.js"
+ - "postcss.config.js"
+ - ".eleventy.js"
- ".github/workflows/**"
workflow_dispatch:
inputs:
@@ -58,31 +59,27 @@ jobs:
- uses: actions/checkout@v4
with:
lfs: true # images are stored with LFS
- # From: https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#caching-packages
- - name: Install poetry
- run: pipx install poetry==1.7.1
- - uses: actions/setup-python@v5
+ - uses: actions/setup-node@v4
with:
- python-version-file: .python-version
- cache: poetry
- # Install with --no-root because project does produce a python package
- - run: poetry install --no-root
- # From: https://github.com/squidfunk/mkdocs-material/blob/master/docs/publishing-your-site.md#with-github-actions
- - name: Setup MkDocs cache
+ node-version-file: package.json
+ cache: "npm"
+ - name: Install node dependencies
+ run: npm install
+ - name: Setup site cache
uses: actions/cache@v3
with:
- key: mkdocs-material-${{ github.run_id }}
- path: .cache
+ key: build-11ty-${{ github.run_id }}
+ path: _site
restore-keys: |
- mkdocs-material-
- - name: Build site with MkDocs
- run: poetry run mkdocs build
+ build-11ty-
+ - name: Build site with 11ty
+ run: npm run build
- name: Upload build artifact
id: upload
uses: actions/upload-artifact@v4
with:
name: ${{ env.artifact }}
- path: site/
+ path: _site/
retention-days: 1
############################################################
@@ -138,17 +135,11 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- - name: Install poetry # Needed for updating version in pyproject.toml
- run: pipx install poetry==1.7.1
- - name: List semantic release plugins
- id: listPlugins
- uses: mikefarah/yq@master
with:
- cmd: yq '[ .plugins[] | .[0] // . ] | join(" ")' .releaserc
- - name: Install Semantic Release
- run: npm install -g semantic-release
- - name: Install Semantic Release plugins
- run: npm install -g ${{ steps.listPlugins.outputs.result }}
+ node-version-file: package.json
+ cache: "npm"
+ - name: Install node dependencies
+ run: npm install
- name: Run Semantic Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -174,7 +165,6 @@ jobs:
# https://aka.ms/codeql-docs/language-support
language: [javascript-typescript]
steps:
- - uses: actions/checkout@v4
- name: Download build artifact
uses: actions/download-artifact@v4
with:
diff --git a/.python-version b/.python-version
deleted file mode 100644
index 512d523..0000000
--- a/.python-version
+++ /dev/null
@@ -1 +0,0 @@
-3.12.1
\ No newline at end of file
diff --git a/.releaserc b/.releaserc
deleted file mode 100644
index 79b8b46..0000000
--- a/.releaserc
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "branches": [
- "main",
- {
- "name": "preview",
- "channel": "preview",
- "prerelease": true
- }
- ],
- "plugins": [
- "@semantic-release/commit-analyzer",
- "@semantic-release/release-notes-generator",
- "@semantic-release/changelog",
- [
- "@semantic-release/exec",
- {
- "prepareCmd": "./release.sh ${nextRelease.version}"
- }
- ],
- [
- "@semantic-release/git",
- {
- "assets": [
- "CHANGELOG.md",
- "VERSION"
- ],
- "message": "chore(release): ${nextRelease.version} \n\n${nextRelease.notes}"
- }
- ],
- "@semantic-release/github"
- ]
-}
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c233175..8c71810 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,47 +1,26 @@
# Contributing
-## Developing
-
-- The site is maintained as an [MkDocs] website using the [Material for MkDocs] theme
- - See [`mkdocs.yml`](./mkdocs.yml)
-- The site source is contained in the [`src/`](./src/) directory
- - This is configured in [`mkdocs.yml`](./mkdocs.yml)
- - Differed from the default (`docs/`) to reflect that this site is not documentation
-- Dependencies are managed using [Poetry] for Python
- - See [`pyproject.toml`](./pyproject.toml)
-- Common tasks are defined using [Taskfile](https://taskfile.dev/)
- - See [`Taskfile.yml`](./Taskfile.yml)
-
-## Testing
+## Getting Started
-The site can be tested locally using `mkdocs serve` once Python dependencies are installed.
+To install the necessary packages, run this command in the root folder of the site:
```sh
-# Install Python dependencies
-poetry install --no-root
-
-# Serve the site locally
-poetry run mkdocs serve
+npm install
```
-The "serve" task can automatically perform these steps.
+### Commands
-```sh
-# Run the "serve" task
-task serve
-```
+- Run `npm start` for a development server and live reloading
+- Run `npm run build` to generate a production build
-## Deploying
+## Developing
-
+### Theme
-- The site is deployed to [GitHub Pages] using [GitHub Actions]
-- The custom domain "justenstall.com" is managed by CloudFlare
+This site uses the [11ty-resume-template](https://github.com/learnwithgurpreet/11ty-resume-template) theme for 11ty. View the Theme Customization resource for information on how to customize the theme:
-To trigger a deployment
+- [Theme Customization](./docs/theme.md)
+
+## Deploying
-[MkDocs]: "MkDocs"
-[Material for MkDocs]: "Material for MkDocs"
-[Poetry]: "Poetry"
-[GitHub Pages]: "GitHub Pages"
-[GitHub Actions]: "GitHub Actions"
+The site is deployed to GitHub Pages by a GitHub Actions Workflow.
diff --git a/README.md b/README.md
index c792fb9..d280bb5 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
My portfolio and blog website, [justenstall.com](https://justenstall.com).
-----
+---
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/SECURITY.md b/SECURITY.md
deleted file mode 100644
index 119a342..0000000
--- a/SECURITY.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Security Policy
-
-## Supported Versions
-
-| Version | Supported |
-| ------- | ------------------ |
-| any | :x: |
-
-
-
-## Reporting a Vulnerability
-
-Submit an issue to this repository.
diff --git a/docs/theme.md b/docs/theme.md
new file mode 100644
index 0000000..48d32a8
--- /dev/null
+++ b/docs/theme.md
@@ -0,0 +1,335 @@
+# Theme Customization Resource
+
+Content from [11ty-resume-template](https://github.com/learnwithgurpreet/11ty-resume-template).
+
+## Customize your Resume
+
+To edit the content and design of your resume, follow these steps:
+
+### 1. Author Details
+
+Open `src/data/author.json` and edit the information describing yourself. The following properties are supported (optional properties can be removed from the JSON file):
+
+
+
+
+
Key
+
Description
+
Required
+
+
+
+
+
name
+
your full name
+
required
+
+
+
shortName
+
Name initials (for logo area)
+
required
+
+
+
org
+
Organization
+
required
+
+
+
image
+
Profile picture URL
+
required
+
+
+
title
+
Job title
+
required
+
+
+
currentFocus
+
Text which shows on top section of the page
+
required
+
+
+
location
+
Your current location
+
required
+
+
+
email
+
your email address
+
required
+
+
+
telephone
+
telephone number (only being used in schema contact)
+
required
+
+
+
website
+
website URL
+
required
+
+
+
connect[]
+
Array of Objects holding social connect information
+
required
+
+
+
connect[index].name
+
Name of the social platform
+
required
+
+
+
connect[index].icon
+
svg icon file string
+
required
+
+
+
connect[index].url
+
Social profile URL
+
required
+
+
+
skills[]
+
Array of objects
+
required
+
+
+
skills[index].type
+
String based category
+
required
+
+
+
skills[index].tools
+
Array of skills
+
required
+
+
+
skills[index].tools[index].language
+
Type of language or framework/library
+
required
+
+
+
skills[index].tools[index].icon
+
svg icon file string
+
optional
+
+
+
worksFor[]
+
Holds list of working experiences
+
optional
+
+
+
worksFor[index].companyName
+
Company Name
+
required
+
+
+
worksFor[index].title
+
Your role
+
required
+
+
+
worksFor[index].time_start
+
Starting time of your role/job
+
required
+
+
+
worksFor[index].time_end
+
Ending time of your role/job (You can also use Present together with isCurrent attribute.
+
required
+
+
+
worksFor[index].link
+
Company URL
+
required
+
+
+
worksFor[index].isCurrent
+
If you are currently working here
+
optional
+
+
+
hasCredential[]
+
List of Certifications
+
optional
+
+
+
hasCredential[index].org
+
Organization provided the certificate
+
required
+
+
+
hasCredential[index].certification
+
Name of the certification
+
required
+
+
+
hasCredential[index].year
+
Year when you certified.
+
required
+
+
+
hasCredential[index].link
+
Link of your credentials
+
required
+
+
+
hasCredential[index].technologies
+
Technologies, or Used tech stack to delivery the project
+
required
+
+
+
publishes[]
+
Publications
+
optional
+
+
+
publishes[index].title
+
Title of your article/blog post or publication
+
required
+
+
+
publishes[index].date
+
published year/month or date
+
required
+
+
+
publishes[index].link
+
Link of your publication
+
required
+
+
+
publishes[index].details
+
Short summary of your publication
+
required
+
+
+
alumniOf[]
+
Your degree or schooling details
+
optional
+
+
+
alumniOf[index].org
+
Organization provided the certificate
+
required
+
+
+
alumniOf[index].certification
+
Name of the certification
+
required
+
+
+
alumniOf[index].year_start
+
Year when started the degree.
+
required
+
+
+
alumniOf[index].year_end
+
Completion year of degree.
+
required
+
+
+
alumniOf[index].address
+
Address of your institute of university.
+
required
+
+
+
+
+### 2. Recent Project Details
+
+Open `src/data/projects.json` and edit the information describing your recent projects. The following properties are supported (optional properties can be removed from the JSON file):
+
+
+
+
+
Key
+
Description
+
Required
+
+
+
+
+
industry
+
Type of domain of your project
+
required
+
+
+
details
+
Short summary of project
+
required
+
+
+
role[]
+
Array of Strings showcasing your role and responsibilities.
+
required
+
+
+
status
+
status of your project, example: live
+
required
+
+
+
technologies
+
Technologies, or Used tech stack to delivery the project
+
required
+
+
+
+
+### 3. Site details
+
+Open `src/data/site.json` and edit the information describing your recent site level details, theme color, locale, etc. The following properties are supported (optional properties can be removed from the JSON file):
+
+
+
+
+
Key
+
Description
+
Required
+
+
+
+
+
name
+
Website name
+
required
+
+
+
url
+
URL of your website
+
required
+
+
+
Canonical
+
In case you have another similar website, you can provide its URL
+
\ No newline at end of file
diff --git a/src/_includes/partials/_aside.njk b/src/_includes/partials/_aside.njk
new file mode 100644
index 0000000..11f6088
--- /dev/null
+++ b/src/_includes/partials/_aside.njk
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/src/_includes/partials/_certifications.njk b/src/_includes/partials/_certifications.njk
new file mode 100644
index 0000000..b538251
--- /dev/null
+++ b/src/_includes/partials/_certifications.njk
@@ -0,0 +1,15 @@
+
+
+
\ No newline at end of file
diff --git a/src/_includes/partials/_connect.njk b/src/_includes/partials/_connect.njk
new file mode 100644
index 0000000..4143434
--- /dev/null
+++ b/src/_includes/partials/_connect.njk
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/src/_includes/partials/_education.njk b/src/_includes/partials/_education.njk
new file mode 100644
index 0000000..30a688e
--- /dev/null
+++ b/src/_includes/partials/_education.njk
@@ -0,0 +1,15 @@
+
+
+
\ No newline at end of file
diff --git a/src/_includes/partials/_footer.njk b/src/_includes/partials/_footer.njk
new file mode 100644
index 0000000..453b1a1
--- /dev/null
+++ b/src/_includes/partials/_footer.njk
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/src/_includes/partials/_header.njk b/src/_includes/partials/_header.njk
new file mode 100644
index 0000000..0c2a4bb
--- /dev/null
+++ b/src/_includes/partials/_header.njk
@@ -0,0 +1,5 @@
+
+ {{ author.shortName }}
+
\ No newline at end of file
diff --git a/src/_includes/partials/_intro.njk b/src/_includes/partials/_intro.njk
new file mode 100644
index 0000000..e25defa
--- /dev/null
+++ b/src/_includes/partials/_intro.njk
@@ -0,0 +1,10 @@
+
+
+
Company
+
{{ author.org }}
+
+
+
Current Focus
+
{{ author.currentFocus }}
+
+
\ No newline at end of file
diff --git a/src/_includes/partials/_projects.njk b/src/_includes/partials/_projects.njk
new file mode 100644
index 0000000..a633ad0
--- /dev/null
+++ b/src/_includes/partials/_projects.njk
@@ -0,0 +1,41 @@
+
+
Recent Projects
+ {% for item in projects %}
+
+
+
{{ item.industry }}
+
+ {{ item.details }}
+
+
ROLE
+
+ {% for role in item.role %}
+
{{ role }}
+ {% endfor %}
+
+
+
+ Status: {{ item.status }}
+
+ {% for technologies in item.technologies %}
+
+ {{ technologies }}
+
+ {% endfor %}
+
+
+
+
+
+
+ {% endfor %}
+
\ No newline at end of file
diff --git a/src/_includes/partials/_publication.njk b/src/_includes/partials/_publication.njk
new file mode 100644
index 0000000..24a34ed
--- /dev/null
+++ b/src/_includes/partials/_publication.njk
@@ -0,0 +1,15 @@
+
+
+
\ No newline at end of file
diff --git a/src/_includes/partials/_schema_org.njk b/src/_includes/partials/_schema_org.njk
new file mode 100644
index 0000000..a097097
--- /dev/null
+++ b/src/_includes/partials/_schema_org.njk
@@ -0,0 +1,96 @@
+
\ No newline at end of file
diff --git a/src/_includes/partials/_skills.njk b/src/_includes/partials/_skills.njk
new file mode 100644
index 0000000..b54042d
--- /dev/null
+++ b/src/_includes/partials/_skills.njk
@@ -0,0 +1,19 @@
+
+
-Expected graduation: May 2024
-
-Currently working on a Software Engineering research project to conclude the program.
-
-
-
-{ .narrow-image }
-
-
-
-## Completed
-
-### B.S. in Computer Science, University of Dayton
-
-
-
-
-
-Graduated in May of 2021.
-
-
-
-{ .narrow-image }
-
-
diff --git a/src/biography/experience.md b/src/biography/experience.md
deleted file mode 100644
index 6d923ac..0000000
--- a/src/biography/experience.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Experience
-
-## Current
-
-
-### Data Science Engineer, University of Dayton Research Institute
-
-
-
-Currently employed as a Data Science Engineer at the University of Dayton Research Institute.
-{ .description }
-
-{ .image }
-
-
-
-Worked for the student-run organization Flyer Enterprises from September 2018 to May 2021. Main project was developing a mobile application, digital loyalty card system, and a simple content management system for keeping menus up-to-date and running promotions viewable in the mobile application. Also contributed to the [FE Digital](https://www.fedigitalagency.com/) team as the lead web developer and consultant for local small businesses.
-{ .description }
-
-{ .narrow-image }
-
-
-
-
-### Intern, University of Dayton Research Institute
-
-
-
-Worked for UDRI as a part-time intern during the 2020-2021 school year.
-{ .description }
-
-{ .image }
-
-
-
-
-### Intern, GE Aviation
-
-
-
-Worked for GE Aviation as a Digital Technology intern in the Summer of 2019. Assisted the military contracts group with data analysis and automation.
-{ .description }
-
-{ .image }
-
-
-
-
-### Intern, Cooper Tire & Rubber Company
-
-
-
-Worked for Cooper Tire as an IT Infrastructure intern in the Summer of 2018. Helped the IT department streamline their device lifecycle management and mobile device management processes.
-{ .description }
-
-{ .image }
-
-
In my professional life, I'm proud to contribute to the innovative world of technology.
+
My focus is on full-stack projects where I lead front-end teams, bringing my vision to life in an agile environment. I firmly believe in the power of agile methodologies, ensuring that our projects are not only cutting-edge but also adaptable to the rapid changes in the digital realm.