Portfolio Website

GitHub Link

HTML

CSS

Web Development

NodeJS

Server

Frontend

Backend

Virtual Machine

PM2

This is my personal portfolio website, built to showcase my projects, skills, and experience in a clean, professional format. The site is designed with simplicity and responsiveness in mind, making it easy for employers and collaborators to quickly learn about my work.

Goals and Motivations

Features

Deployment Setup

I built my portfolio website using pure HTML and CSS for the front end. To serve the site, I set up a lightweight Node.js server, which handles delivering the static files to visitors. I manage the Node process with PM2, which ensures the server stays online, restarts automatically if it crashes, and runs in the background after reboots.

The application is deployed on a DigitalOcean droplet, where PM2 keeps the Node server running continuously. This setup gives me full control over the hosting environment while keeping the deployment simple and reliable.

To streamline updates, I configured a cron job to run every 30 minutes. This job pulls the latest code from the main branch on GitHub. With PM2’s file-watching enabled on the server directory, the application automatically reloads whenever new changes are detected.

Advantages to my Setup

Home Page

The Home page serves as the entry point to the portfolio website. It introduces visitors to who I am, highlights my skills at a glance, and provides quick access to the main sections of the site. A clean navigation bar allows users to explore projects, my CV, and contact information.

The About section provides a brief overview of my background, interests, and goals as a developer. It is kept concise, highlighting my academic and professional journey and the skills I have gained, along with a headshot, so the readers quickly understand who I am.

Home page of website

Projects Section

This section presents the projects I have completed in an visually accesable form and allows the reader to quickly identify the skills gained from the project with the tags bar.

Contacts page of website

Project Page

Each project page includes tags, as found on the project cards, which highlight the key skills and technologies used, a link to its GitHub page, and a detailed description of the project, including its goals and motivations.

Contacts page of website

Contacts Section

Allows the user to quickly get in touch with me through my contact form which uses EmailJS to send and email from my email to me with the froms contents.

Contacts page of website Example Email