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.
git clone https://github.com/ashish-panicker/johnsmith-portfolio.git
cd johnsmith-portfolio
npm install
npm run dev
npm run build
C:\
npm run build
dist
folder into nginx-<version>\html\portfolio
folder in the servernginx-<version>\conf\nginx.conf
file http {
# other configurations
server {
location / {
root html/portfolio/dist;
index index.html index.htm;
}
}
}
nginx-<version>.exe
http://localhost
and verify the app is deployeddocker build -t johnsmith-portfolio .
docker run -d -p 3000:80 johnsmith-portfolio
Open 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 |
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.