A modern, responsive portfolio website showcasing my CV, qualifications, and programming projects. Built with Vite for fast development and production builds, and Bootstrap for professional styling.
- Fast Development: Vite provides instant server start and lightning-fast HMR (Hot Module Replacement)
- Responsive Design: Bootstrap ensures the site looks great on all devices
- Multiple Pages: Home, Profile (CV & Qualifications), and Projects showcase
- Dynamic Data Loading: Content loaded from JSON files for easy maintenance
- Production Optimized: Minified and optimized builds ready for deployment
- Modern JavaScript: ES modules and functional components
├── src/
│ ├── main.js # Entry point
│ ├── app.js # Main app logic
│ ├── style.css # Global styles
│ ├── components/
│ │ ├── navbar.js # Navigation component
│ │ └── hero.js # Hero section
│ ├── pages/
│ │ ├── profile.js # CV & Qualifications page
│ │ └── projects.js # Projects showcase page
│ └── utils/
│ └── dataLoader.js # JSON data loader utility
├── public/
│ └── json/
│ ├── profile.json # Qualifications data
│ └── projects.json # Projects data
├── json/ # Original JSON files
├── css/ # Original CSS (legacy)
├── js/ # Original JS (legacy)
├── img/ # Images directory
├── index.html # HTML entry point
├── vite.config.js # Vite configuration
├── package.json # Dependencies
└── dist/ # Production build output
- Node.js (v14 or higher)
- npm (comes with Node.js)
- Install dependencies:
npm installStart the development server:
npm run devThis will start a local server at http://localhost:5173/ with hot module replacement enabled.
Create an optimized production build:
npm run buildThe build output will be in the dist/ directory.
npm run previewYour portfolio content is stored in JSON files for easy updates:
Contains your qualifications and achievements organized by category:
- Education
- Certifications
- Training
- Achievements
Contains your programming projects with:
- Project name and description
- Technologies used
- Links to repositories
- Update dates and versions
To update your portfolio, simply edit these JSON files. The changes will be reflected immediately in development mode and after rebuilding for production.
Edit src/style.css to customize:
- Color scheme (CSS variables at the top)
- Font styling
- Component styling
- Responsive breakpoints
Edit the navigation items in src/app.js:
const navItems = [
{ label: 'Home', id: 'home' },
{ label: 'Profile', id: 'profile' },
{ label: 'Projects', id: 'projects' }
]Customize the hero section in src/components/hero.js to change welcome text, buttons, and styling.
The dist/ folder contains your production-ready website and can be deployed to:
- Build the project:
npm run build - Push the
dist/folder to yourgh-pagesbranch - Or configure GitHub Actions to auto-build
- Netlify: Connect your repository and set build command to
npm run build, deploy directory todist/ - Vercel: Similar setup to Netlify
- Traditional Hosting: Upload the
dist/folder via FTP/SFTP
- Vite - Next generation frontend tooling
- Bootstrap - Responsive CSS framework
| Script | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Create production build |
npm run preview |
Preview production build locally |
See LICENSE file for details.