This is a responsive, animated, and theme-aware personal portfolio website built for John Smith, a Senior Software Engineer and veteran game developer. It is developed using React, Vite, TailwindCSS, and Framer Motion. The project is containerized using Docker for easy deployment.
- 🧠 About Me section
- 🎮 Projects with visuals and descriptions
- ⚙️ Skills & Tech Stack
- 💼 Experience & Resume (PDF Download)
- ✉️ Contact form (with validation)
- 🌗 Dark / Light theme toggle
- 📱 Responsive design with mobile hamburger menu
- 🧭 Sticky navigation with Framer Motion animation
- 🐳 Dockerized for deployment
- Frontend: React + Vite
- Styling: TailwindCSS
- Animation: Framer Motion
- Icons: Lucide React
- Containerization: Docker + NGINX
- Node.js (v18+)
- npm or yarn
- Docker (for containerization)
git clone https://github.com/ashish-panicker/johnsmith-portfolio.git
cd johnsmith-portfolio
npm install
npm run devnpm run build- Download Nginx Server
- Extract the zip file to
C:\ - Build the react project
npm run build - Copy the
distfolder intonginx-<version>\html\portfoliofolder in the server - Edit the
nginx-<version>\conf\nginx.conffile
http {
# other configurations
server {
location / {
root html/portfolio/dist;
index index.html index.htm;
}
}
}
- Start
nginx-<version>.exe - Browse to
http://localhostand verify the app is deployed
docker build -t johnsmith-portfolio .docker run -d -p 3000:80 johnsmith-portfolioOpen your browser at http://localhost:3000
A quick overview of key AWS tools used in a CI/CD pipeline:
| Tool | Purpose | Key Features |
|---|---|---|
| CodeCommit | Fully managed Git-based source control | Secure and scalable, IAM integration, Git hooks |
| CodeArtifact | Managed artifact repository for software packages (npm, Maven, etc.) | Supports multiple formats, dependency sharing, and access control |
| CodeBuild | Builds, tests, and packages source code | On-demand scaling, Docker support, environment variables |
| CodeDeploy | Automates deployments to EC2, Lambda, and on-prem servers | Blue/green deployments, canary updates, lifecycle hooks |
| CodePipeline | Orchestrates the entire CI/CD workflow | Integrates with CodeCommit, CodeBuild, CodeDeploy, and third-party tools |
- CodeCommit stores your source code.
- CodeBuild compiles and builds artifacts.
- CodeArtifact (optional) manages shared packages and dependencies.
- CodeDeploy deploys your app to various targets.
- CodePipeline connects and automates the end-to-end workflow.
src/
components/ # Navbar, ThemeToggle, Sections...
context/ # Theme Context
data/ # Sample Data
assets/ # Images, Resume PDF
App.jsx # Main app component
main.jsx # ReactDOM entry
public/ # Static files
Dockerfile # Docker build config
vite.config.js # Vite bundler config
MIT License. Free to use and modify.
Thanks to open-source contributors of React, Vite, TailwindCSS, Framer Motion, and Lucide for making this project possible.