A React portfolio website with an integrated AI chatbot powered by OpenAI, featuring secure API key management.
npm installCreate or edit https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip and add your API key:
OPENAI_API_KEY=sk-proj-your-actual-key-here
Get your API key from: https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip
npm run devOpen http://localhost:5173 in your browser.
✅ API key is never exposed to the browser
✅ Backend proxy handles all OpenAI requests
✅ Environment variables protected by .gitignore
✅ Production-ready secure architecture
- Frontend calls
/api/chatendpoint - Backend server proxies requests to OpenAI
- API key stays on the server only
ai-portfolio/
├── src/
│ ├── components/
│ │ ├── https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip # AI chatbot (calls /api/chat)
│ │ ├── https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip
│ │ ├── https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip
│ │ └── ...
│ └── https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip
├── api/
│ └── https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip # Vercel serverless function
├── https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip # Local Express server
├── https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip # Your API key (gitignored)
└── https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip # Template
| Command | Description |
|---|---|
npm run dev |
Run both backend & frontend locally |
npm run server |
Run backend server only |
npm run frontend |
Run Vite frontend only |
npm run build |
Build for production |
npm run preview |
Preview production build |
- Push to GitHub
- Import project on Vercel
- Add environment variable:
OPENAI_API_KEY - Deploy
Deploy https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip as a https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip app and set the OPENAI_API_KEY environment variable.
- Frontend: React, Vite, TailwindCSS
- Backend: https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip, Express
- AI: OpenAI GPT-3.5 Turbo
- Deployment: Vercel / Any https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip host
- Quick Start: See
https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip - Security Guide: See
https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip - Verify Security: Run
.\https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip
- Never commit
https://raw.githubusercontent.com/saadashrafai/ai-portfolio/main/src/ai-portfolio-3.9.zip- It contains your secret API key - Always use environment variables - Never hardcode keys
- Test with
npm run dev- Ensures backend is running
MIT