The third iteration of my software development portfolio, themed as an airport check-in terminal screen.
- Vitest - Unit testing
- Playwright - End-to-end testing
In order to run this application locally, you must have Node.js (v20 or higher) and pnpm installed on your computer. To check if you already have them installed, enter node -v and pnpm -v in your terminal. If you do not have Node.js, you can install it here: https://nodejs.org/en/. To install pnpm, run npm install -g pnpm.
Once you have confirmed that Node.js and pnpm are installed, cd into a folder on your computer and run the following command to clone the repository:
git clone https://github.com/LucasSilbernagel/portfolio-3.0.git
Then cd into the project folder and open it in your code editor. For Visual Studio Code:
cd portfolio-3.0
code .
Create a .env file in the project root directory. Add the following environment variable:
STRAPI_URL=http://localhost:1337
This should point to your local Strapi instance. For production builds, you'll need to set this to your production Strapi URL.
To install all of the required dependencies for both the main application and the CMS, run the following commands:
pnpm install
cd cms && npm install && cd ..
You have a few options for running the application:
-
Frontend only: Run
pnpm devin your terminal. Your terminal should indicate alocalhostURL (typicallyhttp://localhost:4321) at which you can view the app in your browser. Note that without Strapi running, the site will build but content will be empty. -
CMS only: Run
pnpm cms:dev(orcd cms && npm run develop) to start Strapi. The Strapi admin panel will be available athttp://localhost:1337/admin. -
Both frontend and CMS: Run
pnpm dev:allto start both the Astro dev server and Strapi concurrently.
If you're running Strapi for the first time, you'll need to:
- Create an admin account when prompted
- Create and publish content in the Strapi admin panel
- Configure public permissions:
- Go to Settings > Users & Permissions Plugin > Roles > Public
- Enable "find" permission for each content type you want to display (projects, experience, tech-stack, about-page, etc.)
Unit tests are written with Vitest.
- Use
pnpm testto run all unit tests in watch mode - Use
pnpm test:runto run all unit tests once - Use
pnpm test:uito run tests with the Vitest UI - Use
pnpm test:coverageto run tests with coverage reporting
End-to-end tests are written with Playwright.
- Use
pnpm test:e2eto run all e2e tests - Use
pnpm test:e2e:uito run tests with the Playwright UI - Use
pnpm test:e2e:headedto run tests in headed mode (visible browser)
The design is themed as an airport check-in terminal screen, featuring:
- Boarding pass styled project cards
- Terminal-style interface elements
- Airline schedule/timetable for career timeline
- Help desk styling for contact page
- Clean, modern UI with airport terminal aesthetics