Personal Portfolio Project
Table of Contents:
Project Overview
For this solo project, you will build a personal portfolio website using HTML and CSS.
A personal portfolio website is often the first impression employers, collaborators, and clients have of you as a developer. It is a platform to showcase your skills, projects, creativity, and personality.
By crafting your own site from scratch, you gain essential experience with real-world web development and create a powerful tool to advance your career.
You will then have an opportunity to present your project to your peers, sharing the challenges you faced along the way and your key learnings from the project.
📋 Key Deliverables:
Portfolio Website
A responsive personal portfolio deployed to username.github.io
AI Usage Document
A Google Doc logging your AI interactions (prompts, responses, changes, explanations). Link it in your README.
Reflection Responses
Written responses to the 3 reflection questions, added to your README.md
Science Fair Presentation
A 15-minute presentation slot where you'll demo your site and discuss your reflections
Sample Designs Investigation
Portfolio websites most commonly have the following:
Hero Section — an overview/introduction with your name, role or tagline, and a visual or statement that represents you.
About Me — a section or page with a friendly biography, photo, your story, and highlights of your skills or values.
Projects/Work — a showcase of 3-5 projects, each with a title, description, technologies used, images or demos, and links (like GitHub or live sites).
Contact — ways to reach you, such as an email form, email address, social media links, and optionally a downloadable resume.
Navigation Menu — easy-to-use navigation for switching between sections/pages (often as a top nav bar).
Consistent Personal Branding — colors, fonts, and visuals that reflect your personality and style.
Responsive Design — looks good and works on both mobile and desktop devices.
Accessible and Semantic HTML — uses proper markup so it’s usable for everyone and discoverable by search engines.
While there are many similarities across portfolios, the choices you make around colors, fonts, and layouts can dramatically change the feel of your portfolio.
Check out these examples of personal portfolio websites which all have roughly the same structure (click here to play around with them.)

Each example demonstrates different approaches to:
Color Theme
Light vs. dark backgrounds, single accent color vs. multiple colors, gradients vs. solid colors
Typography
Serif vs. sans-serif fonts, playful vs. professional feel, font pairing strategies
Navigation
Top bar vs. sidebar, ALL CAPS vs. lowercase, hover effects
Project Cards
Grid vs. list layout, image placement, hover animations
Spacing
Compact vs. spacious layouts, section padding
Personality
Minimalist, bold, elegant, retro, editorial, etc.
Make a copy of the Investigation Guide to analyze these examples and develop your own design taste before building your portfolio.
Telling Your Story
The story you tell is just as important as the code that your write.
For your personal portfolio project, you will dedicate the "About Me" section to telling the world your story. You won't have a ton of space so you will need to craft a concise but compelling message that captures the unique experiences and perspectives you can bring to an engineering team.
Make a copy of this About Me Content Worksheet which will help you craft a compelling narrative to share on your personal portfolio.
AI Usage (It's Required!)
Generative AI tools are now essential in the developer toolkit and this project is an excellent opportunity to start developing your AI skillset.
AI tools (ChatGPT, Claude, GitHub Copilot, etc.) are required for this project—but you must be able to explain every line of code you submit.
📝 AI Usage Log (Required)
Make a copy of this AI Usage Document to track your usage.
For each use case below, you are required to document:
What you asked for (your prompt)
What you received (the AI's response)
What you changed and why
How your resulting code works (in your own words)
Share the Google Doc and link it in your README like so:
Use Case 1: Generate boilerplate code
Use AI to generate starting templates for repetitive structures like your contact form or project cards.
Your task:
Ask: "Create an accessible HTML contact form with fields for name, email, and message" or "Here is an project card component that I designed [paste HTML], make 3 more using the same structure"
Review the generated code—does it use proper semantic elements and structure? For the form, are there
<label>elements and correctinputtypes?Modify the code to match your design (classes, structure, styling)
Document in your AI Usage Log what you changed and why
Use Case 2: Debug your CSS layouts
When your flexbox or grid layout isn't working as expected, use AI to help you diagnose and fix the issue.
Your task:
When you encounter a layout bug, take a screenshot or copy your relevant HTML/CSS
Ask an AI tool: "Why isn't my grid/flexbox layout working? Here's my code: [paste code]"
Read the explanation to understand why your code wasn't working
Apply the fix and document in your AI Usage Log
💡 Pro tip: Chrome DevTools has a built-in AI assistant! Access it by clicking the blue chat icon in the top right corner of the developer tools panel. You can select specific elements on the page and ask questions directly.

Use Case 3: Explore design alternatives
Use AI as a brainstorming partner when you're stuck on design decisions.
Your task:
Ask questions like:
"What are different ways to style a navigation bar?"
"How can I make my project cards more visually interesting?"
"What color combinations work well with [your primary color]?"
Evaluate the suggestions—you don't have to use them all!
Document any suggestions you implemented
Use Case 4: Learn how to implement extension features
For this project, you will be required to create a sticky header and use CSS transitions, neither of which you've learned yet! This is intentional and we want you to use AI to teach yourself these concepts.
Your task:
Ask an AI tool: "How do I make a sticky header using CSS?"
Read and understand the explanation before copying any code
Implement it in your project, modifying the code to fit your design
Document the interaction in your AI Usage Log
Then repeat for CSS transitions:
Ask: "What are CSS transitions and how do I use them for hover effects?"
Experiment with different transition properties (
transition-duration,transition-property, etc.)Apply a transition to at least one interactive element (nav links, buttons, or project cards)
Document in your AI Usage Log
AI Usage Guidelines
✅ Green Light — Do these freely:
Understanding concepts ("Explain how flexbox justify-content works")
Debugging help ("Why isn't my grid layout working?")
Learning syntax ("Show me how to create a CSS variable")
Generating boilerplate ("Create a basic HTML form structure")
Exploring alternatives ("What are different ways to center a div?")
⚠️ Yellow Light — Allowed, but requires deep understanding:
Generating complete components → you must modify and explain every part
Getting layout solutions → you must explain why it works and what alternatives exist
Receiving code suggestions → you must evaluate if it's the best approach
🛑 Red Light — Strictly not allowed:
Copy-pasting AI code you don't understand
Using AI to generate your entire project
Being unable to explain code in your presentation
Not documenting AI usage in your log
The Test: If you can't explain it, you can't ship it.
Before using any AI-generated code, ask yourself:
Can I explain how this works to a peer?
Can I modify this if requirements change?
Do I understand the tradeoffs of this approach?
Could I recreate something similar without AI?
If you answer "no" to any of these, spend time understanding before using the code.
Science Fair Presentation and Reflection Questions
At Marcy, instead of formal presentations, we regularly use "Science Fair-style" presentations to showcase our work. In a Science Fair, you will be stationed around the room with your laptop open for your classmates to experience your website in person.
You will be assigned to a "presentation shift"—a roughly 15-minute long time slot where you will be required to present. Outside of your assigned shift you will be free to roam about and see the projects that your classmates have built!
In addition to showing off your project, you will be expected to reflect on the questions below and share them to your audience. ❗️Your responses to these questions should be added to your project's README.md file❗️:
Share one technical concept that you developed greater mastery over in this project. Demonstrate how you understand that concept by sharing your mental model of the concept. Then, show how you used that concept in your project.
Choose one project requirement that you found challenging and are proud of implementing. Describe what made it challenging and how you were able to implement the requirement by walking through your code as succinctly as possible. Remember that your audience does not know your code nearly as well as you do so you’ll have to break it down in a logical manner for them to quickly understand it.
How did you leverage AI to assist your development of this project?
Project Requirements and Assessment Criteria
Your final project must be submitted via Canvas and will be evaluated on the following criteria. Use this list as a guide for completing this project.
Portfolio Content (5 points):
HTML Best Practices (3 points):
CSS Layout (3 points):
CSS Best Practices (2 points):
Responsive Design (3 points):
Core Functionality (2 points):
Extension Functionality (2 points)
Deployment & Polish (2 points):
Summary
📋 Key Deliverables:
Portfolio Website
A responsive personal portfolio deployed to username.github.io
AI Usage Document
A Google Doc logging your AI interactions (prompts, responses, changes, explanations). Link it in your README.
Reflection Responses
Written responses to the 3 reflection questions, added to your README.md
Science Fair Presentation
A 15-minute presentation slot where you'll demo your site and discuss your reflections
📚 Resources:
Web Development Cheatsheet — Quick reference for HTML, CSS, and DOM
Investigation Guide — Analyze sample designs
About Me Content Worksheet — Craft your story
AI Usage Document — Document your AI usage
Formspree Setup — Formspree setup instructions
Sample Portfolio Designs — See different layout approaches
🗺️ Next Steps:
Jump to the Project Roadmap below to get started. Follow the checkpoints in order to ensure you prioritize content and structure before diving into styling!
Getting Started
1. Repository Setup
Go to GitHub and create a new repo. The name of the repo must match this pattern exactly:
For example, for the user jon-smith123 their repo would be named
Make sure to include a README.md file.
Then clone your repo.
2. Set up your file structure
In your repo, create the following file structure:
NOTE: It is essential that your index.html is at the root of the repo.
3. Follow the Roadmap
It will be essential that you prioritize your work appropriately. It can be incredibly easy to fall into the trap of jumping into design before your content is fully completed. Avoid that urge and instead follow the roadmap below to ensure success!
Checkpoint 1: Planning and Structure (Friday)
Before you write any code:
Then build:
Deliverable: HTML-only site with all content and structure
Checkpoint 2: Mobile Styling (Saturday - Sunday)
Deliverable: Fully styled mobile experience
Checkpoint 3: Responsive Design (Monday)
Deliverable: Fully responsive site
Checkpoint 4: Polish and Deploy (Tuesday)
Deliverable: Live portfolio at username.github.io
Last updated