A modern, responsive portfolio website showcasing the work of Shubham Bairwa, a Computer Science student at IIIT Sricity.
- Full-Stack Portfolio: React + TypeScript frontend with Express.js backend
- Responsive Design: Mobile-first approach with Tailwind CSS
- Smooth Animations: Framer Motion for interactive elements
- Project Showcase: Featured projects with live demos and GitHub links
- Skills Display: Animated skill bars and technology icons
- Contact Form: Functional contact form with backend integration
- Admin Dashboard: Content management system for portfolio updates
- Dark/Light Theme: Theme toggle with persistent preferences
- React 18 with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- Framer Motion for animations
- React Query for data fetching
- Radix UI for accessible components
- Node.js with Express.js
- TypeScript for type safety
- In-memory storage (easily replaceable with database)
- CORS enabled for API access
portfolio/
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom React hooks
│ │ └── lib/ # Utilities and configurations
├── server/ # Backend Express server
│ ├── index.ts # Server entry point
│ ├── routes.ts # API routes
│ └── storage.ts # Data management
├── shared/ # Shared types and schemas
└── dist/ # Production build output
- Node.js (v18 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/YellowFlash106/Portfolio.git cd Portfolio -
Install dependencies
npm install
-
Start development server
npm run dev
-
Open your browser
http://localhost:5000
-
Build for production
npm run build
-
Start production server
npm start
- StreamOn: Social communication platform with real-time messaging and video calls
- Tasky: Full-stack task management application with JWT authentication
- S-Commerce: E-commerce platform with React frontend and Node.js backend
Update your details in server/storage.ts:
- Name, bio, and contact information
- Skills and proficiency levels
- Project details and links
- Social media profiles
- Colors and themes can be modified in
tailwind.config.ts - Animations in
client/src/lib/animations.ts - Component styles in individual component files
- Environment-based admin protection: Admin routes only available in development
- Rate limiting: Prevents abuse with configurable limits
- Input validation: Sanitized contact form with email validation
- Security headers: Helmet.js with CSP, XSS, and clickjacking protection
- CORS configuration: Restricted origins in production
- Error handling: No sensitive data leakage in production
See SECURITY.md for detailed security configuration.
Create a .env.production file:
NODE_ENV=production
PORT=5000
# Add your production domain for CORS
ALLOWED_ORIGINS=https://yourdomain.comnpm run build
npm startFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist ./dist
EXPOSE 5000
CMD ["npm", "start"]- Vercel: Full-stack deployment with automatic HTTPS
- Railway: Simple full-stack hosting
- Render: Free tier with automatic deploys
- Heroku: Traditional but reliable
npm run dev- Start development servernpm run build- Create production buildnpm run check- Run TypeScript checksnpm start- Start production server
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Shubham Bairwa
- GitHub: @YellowFlash106
- LinkedIn: [Your LinkedIn Profile]
- Email: [Your Email]
⭐ Star this repo if you found it helpful!