A modern, responsive portfolio website built with React, TypeScript, and Tailwind CSS. Features a Progressive Web App (PWA) with offline capabilities and installable functionality.
Visit the live portfolio: stanleygersom.vercel.app
- Responsive Design: Optimized for all device sizes
- Progressive Web App (PWA): Installable with offline support
- Modern Tech Stack: React 19, TypeScript, Tailwind CSS
- Interactive Components: Smooth animations and transitions
- Contact Integration: EmailJS for contact form functionality
- Google Maps Integration: Interactive location display
- Performance Optimized: Vercel Speed Insights integration
- SEO Friendly: Meta tags and Open Graph support
- Frontend: React 19, TypeScript
- Styling: Tailwind CSS, DaisyUI
- Build Tool: Vite
- Deployment: Vercel
- Icons: React Icons, FontAwesome, Lucide React
- Maps: Google Maps API
- Email: EmailJS
- PWA: Service Worker, Web App Manifest
- Clone the repository:
git clone https://github.com/ACT91/My-Portfolio.git
cd my_portfolio
- Install dependencies:
npm install
- Create a
.env
file and add your environment variables:
VITE_EMAILJS_SERVICE_ID=your_service_id
VITE_EMAILJS_TEMPLATE_ID=your_template_id
VITE_EMAILJS_PUBLIC_KEY=your_public_key
VITE_GOOGLE_MAPS_API_KEY=your_google_maps_key
- Start the development server:
npm run dev
The project is configured for easy deployment on Vercel:
- Push your code to GitHub
- Connect your repository to Vercel
- Deploy automatically with each push
- Installable: Users can install the app on their devices
- Offline Support: Service worker caches essential resources
- App-like Experience: Standalone display mode
- Custom Install Button: Animated install prompt
- Primary:
#200058
- Background:
#ffffff
- Theme colors can be modified in
tailwind.config.js
andmanifest.json
- Update personal information in
constants/MyDetails.ts
- Modify project data in the respective component files
- Replace images in the
public/images/
directory
my_portfolio/
├── components/
│ └── index/
│ ├── Footer.tsx
│ ├── Header.tsx
│ └── MainContent.tsx
├── constants/
│ └── MyDetails.ts
├── pages/
│ ├── About.tsx
│ ├── Contact.tsx
│ ├── EducationTimeline.tsx
│ └── Projects.tsx
├── public/
│ ├── images/
│ │ └── placeholder.txt
│ ├── manifest.json
│ ├── service-worker.js
│ └── Stanley Gersom (ACT91) _ Portfolio_files/
│ ├── ACT91-icon.png
│ ├── ACT91.jpg
│ ├── IMG20250320_065938.jpeg
│ └── ...
├── src/
│ ├── App.tsx
│ ├── index.css
│ ├── InstallPWA.tsx
│ ├── InstallPWAToast.tsx
│ ├── main.tsx
│ ├── ThemeProvider.tsx
│ ├── version.ts
│ ├── vite-env.d.ts
│ └── assets/
├── styles/
│ ├── About.css
│ ├── App.css
│ ├── Footer.css
│ ├── Header.css
│ └── InstallPWA.css
├── .env
├── .gitignore
├── .vercelignore
├── eslint.config.js
├── index.html
├── package.json
├── README.md
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
├── vercel.json
└── vite.config.ts
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run lint
- Run ESLint
This project is open source and available under the MIT License.
Stanley Gersom (ACT91)
- Portfolio: stanleygersom.vercel.app
- GitHub: @ACT91
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
Give a ⭐️ if this project helped you!