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.