A modern resume and portfolio application built with .NET 8 and React, showcasing skills, projects, experience, and education.
- Modern, responsive design
- Fast development with Vite
- Firebase Firestore backend for static deployment
- Alternative RESTful API with ASP.NET Core
- Professional resume layout
- Mobile-friendly
- Netlify-ready static deployment
- Calendly integration for scheduling calls/interviews
- Service request form with Firestore integration
- Automatic Calendly popup after form submission
- Backend:
- Option 1: .NET 8, ASP.NET Core MVC (local development)
- Option 2: Firebase Firestore (static/Netlify deployment)
- Frontend: React 19, Vite
- Styling: Modern CSS with CSS Variables
- Database: Firebase Firestore
- Deployment: Netlify (static) or any .NET hosting platform
- .NET 8 SDK (for local .NET development)
- Node.js 24 LTS (or newer)
- npm
- Firebase account (for static deployment)
This is the recommended approach for deploying to Netlify or other static hosting platforms.
- Create Firebase Project at https://console.firebase.google.com/
- Enable Firestore Database (production mode)
- Get Service Account Key and save as
ResumeApp/scripts/serviceAccountKey.json - Seed Firebase with Resume Data:
cd ResumeApp
npm install
npm run seed:firebase- Build and Deploy:
npm run build- Push your code to GitHub
- Go to https://netlify.com and create new site
- Connect your GitHub repository
- Netlify will auto-detect the
netlify.tomlconfig
Terminal 1 - Start the .NET Backend:
cd ResumeApp
dotnet runTerminal 2 - Start the Vite Dev Server:
cd ResumeApp
npm run dev- Edit Resume Data: Update
ClientApp/src/data/resumeData.json - Re-seed Firebase: Run
npm run seed:firebase - Rebuild: Run
npm run build - Deploy: Push to GitHub (Netlify will auto-deploy)
Edit the ResumeController.cs file in the Controllers folder to update your resume data.
ResumeApp/
├── ClientApp/ # React application
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── data/ # Resume data (JSON)
│ │ ├── firebase.js # Firebase config
│ │ ├── App.jsx # Main app component
│ │ └── App.css # Main styles
│ └── index.html # HTML template
├── scripts/ # Utility scripts
│ └── seedFirebase.js # Firebase seeding script
├── Controllers/ # .NET controllers
│ └── ResumeController.cs # Resume API
├── Models/ # C# data models
│ └── ResumeModels.cs
├── wwwroot/ # Static files
│ └── dist/ # Built React app
├── Program.cs # .NET app configuration
├── vite.config.js # Vite configuration
└── package.json # npm dependencies
npm run dev- Start Vite development servernpm run build- Build React app for productionnpm run preview- Preview production build locallynpm run seed:firebase- Seed Firebase Firestore with resume data
dotnet run- Start the .NET applicationdotnet build- Build the .NET projectdotnet watch run- Run with hot reload
GET /api/resume- Get complete resume data
- Data stored in Firestore:
resume/datadocument - Accessed via Firebase SDK in
src/firebase.js
The application includes a service request form that allows potential clients to submit project inquiries. Submissions are stored in Firestore and trigger a Calendly popup for scheduling.
This project is open source and available under the MIT License.