A next-generation cybersecurity portfolio website with terminal interface and AI chatbot.
# Install dependencies
npm install
# Run development server
npm run devCreate .env.local in root:
GROQ_API_KEY=your_Groq_api_key_hereGet free API key: https://console.groq.com/home
- Matrix rain background animation
- Typing animations for hero section
- Interactive terminal with commands:
help- Show all commandswhoami- About Shreyasskills- Security expertiseprojects- Past worktools- Security toolscontact- Contact infohandler- Terminal commands listclear- Clear terminal
- AI chatbot with Gemini API (fallback responses if no key)
- Dark cyberpunk theme with green/blue accents
- Fully responsive design
- Contact form with validation
- Download resume/CV
- Next.js 14 (App Router)
- React 18
- Tailwind CSS
- Framer Motion
- Google Gemini API
├── src/
│ ├── app/
│ │ ├── api/
│ │ │ ├── chat/route.ts # AI Chatbot API
│ │ │ └── contact/route.ts # Contact Form API
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── components/
│ │ ├── About.tsx
│ │ ├── Certifications.tsx
│ │ ├── Chatbot.tsx # AI Chatbot
│ │ ├── Contact.tsx # Contact Form
│ │ ├── Footer.tsx
│ │ ├── Hero.tsx
│ │ ├── MatrixBackground.tsx
│ │ ├── Navigation.tsx
│ │ ├── Projects.tsx
│ │ ├── Skills.tsx
│ │ ├── TerminalSection.tsx
│ │ └── Tools.tsx
│ └── components/
├── public/
│ └── resume.pdf # Resume file
├── tailwind.config.ts
├── next.config.js
└── package.json
- Install Vercel CLI:
npm i -g vercel- Deploy:
vercelOr push to GitHub and connect to Vercel:
- Push code to GitHub
- Go to https://vercel.com
- Import repository
- Add environment variables in Vercel dashboard
- Deploy
# Build for production
npm run build
# Start production server
npm startThe resume is available for download from the navigation menu. Click "Resume" to download.
The contact form sends data to /api/contact. Configure email handling in production:
- Use Next.js API routes with email service (SendGrid, Mailgun, etc.)
- Or connect to form service (Formspree, Netlify Forms, etc.)
Replace public/resume.pdf with your resume file.
Edit tailwind.config.ts to change colors:
colors: {
cyber: {
green: "#00ff41", // Change green color
blue: "#00d4ff", // Change blue color
}
}Edit the component files in src/components/:
Hero.tsx- Name and roleAbout.tsx- About sectionSkills.tsx- Skills categoriesProjects.tsx- ProjectsTools.tsx- PlatformsCertifications.tsx- CertificationsContact.tsx- Contact info
MIT License