Portfolio case study
Portfolio CMS Admin Dashboard
A full-stack portfolio CMS built with Next.js, MongoDB, Docker, AWS, GitHub Actions, S3, CloudFront, and an admin dashboard for managing projects, media, videos, and contact messages.

Engineering story
How this project came together
This project is my custom portfolio CMS built to manage my personal portfolio website from an admin dashboard instead of editing code manually. The application includes public pages for projects, blog posts, contact, and portfolio content, plus a protected admin area where I can create projects, upload media, attach YouTube videos, manage contact messages, and publish content. I built the project as a real production learning project. The frontend is powered by Next.js, while the backend uses API routes, Prisma, and MongoDB Atlas. Media files are uploaded to Amazon S3 and delivered through CloudFront. The app is containerized with Docker and deployed automatically using GitHub Actions, Amazon ECR, and an EC2 server. One of the biggest parts of this project was learning how all production pieces connect together: environment variables, authentication, database access, file uploads, CI/CD, Docker images, ECR, EC2, and deployment troubleshooting. The final result is a working portfolio CMS where I can publish projects, manage uploaded images, store contact messages, and update my website content from one dashboard.
Tech stack
Tools and technologies
More projects to explore
Related portfolio work

Automated Portfolio Deployment with AWS S3 and GitHub Actions
A DevOps demo project showing how to automatically deploy a portfolio website to AWS S3 using GitHub Actions, Linux, IAM, and CI/CD secrets.
View project
Create Docker Repository on Nexus and Push Docker Image
A DevOps demo project showing how to create a Docker hosted repository in Nexus and push Docker images from a Linux server using Docker, AWS EC2, and ECR concepts.
View project