Building My STEM Portfolio Website

As a STEM enthusiast, I wanted to create a website that showcases my projects and interests. I decided to build a static website using HTML, CSS, and JavaScript. Since we had already been learning the basics of HTML in school and I had built my first complete website there, I thought building a portfolio website would be the best way to demonstrate my interest in STEM. Here is my old website from school:

My first school website project showing AirPods showcase

Starting Point

This website started as a Visual Studio Code project, building upon my experience creating an AirPods showcase website in school. Using W3Schools as a reference, I began with the basic HTML skeleton structure and expanded from there.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Portfolio</title>
</head>
<body>
    // Content here
</body>
</html>

This basic structure serves as the foundation for every HTML page. From here, I built up the content, styling, and interactivity.

Building Components

After establishing the basic structure, it was all about expanding on it. The navigation bar was my first major component, designed to provide easy access to different sections of the site. I implemented consistent styling using CSS variables to maintain a cohesive look across all pages.

Visual Studio Code showing HTML and CSS

Development Environment

Tools I Used

AWS Deployment

Cloud Infrastructure

For deployment, I leveraged several AWS services:

Throughout development, Visual Studio Code served as my main webpage development environment, making it easier to organize and edit the multiple HTML files that make up this site.

Website Structure

The website consists of several interconnected pages:

Each page maintains consistent styling while serving its unique purpose in showcasing my STEM journey.

Challenges Overcome

Image Carousel Challenge

One major challenge in building this website was creating an image carousel. This feature requires JavaScript to handle image transitions, navigation buttons, and automatic cycling. It was particularly challenging because it involved:

Luckily, I followed a step-by-step tutorial that explained the concepts clearly, helping me understand both the HTML structure, CSS styling, and JavaScript logic needed to make it work.

What I Learned

HTML Skills

  • Semantic markup for better structure
  • Proper use of headings, paragraphs, lists
  • Embedding videos and images
  • Creating tables for data presentation
  • Forms and input elements

CSS Styling

  • Responsive design principles
  • Flexbox and Grid layouts
  • CSS variables for consistent theming
  • Transitions and animations
  • Mobile-first design approach

JavaScript Functionality

  • DOM manipulation
  • Event handling
  • Timing functions
  • Image carousel implementation
  • Debugging with console.log()

Cloud Deployment

  • Amazon S3 bucket configuration
  • Route 53 domain management
  • Static website hosting
  • HTTPS security setup
  • Content delivery optimization

Why This Demonstrates STEM Skills

Building this website required:

Connection to Other STEM Interests

Web development connects to my other interests:

Future Improvements

As I continue learning, I plan to: