This repository contains the source code for my personal portfolio website. It's designed to showcase my journey, projects, and skills as a software engineer, built with Vue.js and Vite.
- Single Page Application (SPA): A smooth and fast user experience powered by Vue.js and Vue Router.
- Component-Driven Development: UI components are developed in isolation and documented using Storybook.
- Dynamic Blog: The blog section is dynamically generated from Markdown files, making it easy to publish new articles.
- Responsive Design: The layout is fully responsive and adapts to various devices, from desktops to mobile phones.
- Contact Form: A functional contact form for visitors to get in touch.
- Framework: Vue.js 3
- Build Tool: Vite
- Routing: Vue Router
- Component Development: Storybook
- Markdown Parsing: Marked & gray-matter
- Styling: CSS3
- Testing: Vitest, Playwright
To run this project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/Devanshukoli/my-portfolio.git
-
Navigate to the project directory:
cd my-portfolio
-
Install dependencies:
npm install
-
Run the development server:
npm run dev
The application will be available at
http://localhost:5173
.
This project includes several scripts to help with development and deployment:
npm run dev
: Starts the Vite development server with Hot Module Replacement (HMR).npm run build
: Compiles the Vue.js application for production into thedist
directory.npm run preview
: Serves the production build locally to preview before deployment.npm run storybook
: Launches the Storybook server to view and develop UI components in isolation.npm run build-storybook
: Creates a static build of the Storybook for deployment.
This project uses Storybook for UI component development. It allows for building, viewing, and testing components in an isolated environment.
To run Storybook:
npm run storybook
This will open Storybook in your browser, where you can browse the component library.
The project follows a standard Vue.js structure:
devanshukoli-my-portfolio/
├── .storybook/ # Storybook configuration files
├── src/
│ ├── assets/ # Global styles and assets
│ ├── blogs/ # Markdown files for blog posts
│ ├── components/ # Reusable Vue components (Header, Footer)
│ ├── router/ # Vue Router configuration
│ ├── stories/ # Storybook stories for components
│ └── view/ # Page-level components (Home, About, Blog)
├── utils/ # Utility scripts (e.g., markdown parser)
├── index.html # Main HTML entry point
├── package.json # Project dependencies and scripts
└── vite.config.js # Vite configuration