A modern, interactive full-stack portfolio website showcasing professional web development expertise with MERN stack.
- About
- Tech Stack
- Features
- Project Structure
- Installation
- Environment Variables
- API Documentation
- Projects Showcase
- Performance
- Security
- Deployment
- Contributing
- Contact
- License
This is a full-stack portfolio website built with the MERN stack (MongoDB, Express, React, Node.js). It serves as a comprehensive showcase of my skills, projects, and professional experience as a Full Stack Web Developer.
Key Highlights:
- π¨ Modern, interactive user interface with smooth animations
- π± Fully responsive design (mobile-first approach)
- π Functional backend API with database integration
- β‘ Optimized performance (Lighthouse Score: 90+)
- π Security best practices implemented
- π― SEO optimized with structured data
- π Real-time contact form with email notifications
- π Dark/Light mode toggle
Frontend Libraries:
- State Management: React Hooks (useState, useContext, useReducer)
- Animations: Framer Motion, React Spring
- Form Handling: React Hook Form + Zod validation
- HTTP Client: Axios
- Icons: React Icons, Heroicons
- Syntax Highlighting: react-syntax-highlighter
- Scroll Effects: AOS (Animate On Scroll), Intersection Observer API
Backend Libraries:
- Web Framework: Express.js
- Database: MongoDB + Mongoose ODM
- Authentication: JWT (optional for future enhancement)
- Email Service: Nodemailer
- Security: Helmet.js, CORS, express-rate-limit
- Validation: express-validator
- Environment: dotenv
- Logging: Morgan
Deployment:
- Frontend: Vercel
- Backend: Render.com / Railway
- Database: MongoDB Atlas
- CI/CD: GitHub Actions
- Animated hero section with typing effect
- Interactive code terminal simulation
- Smooth scroll navigation
- Call-to-action buttons
- Social media links
- Professional summary
- Interactive skill cards with proficiency levels
- Technology stack visualization
- Educational background
- Professional journey timeline
- Categorized skills (Frontend, Backend, Tools, Concepts)
- Interactive skill bars with proficiency indicators
- Hover animations and detailed descriptions
- Years of experience metrics
- Expandable skill categories
- Feature-rich project cards
- Project filtering by technology/category
- Detailed project modal with:
- Project description and objectives
- Technology stack used
- Key features and highlights
- Code snippets with syntax highlighting
- Live demo links
- GitHub repository links
- Project screenshots/mockups
- Professional experience timeline
- Educational background
- Achievements and responsibilities
- Internship highlights
- Company logos and links
- Functional contact form with validation
- Real-time form feedback
- Email notifications sent to inbox
- Success/Error messages
- Rate limiting to prevent spam
- Fully functional backend integration
- Toggle between themes
- Persists user preference
- System preference detection
- Smooth transitions
- Mobile-first approach
- Touch-friendly interface
- Optimized for all devices
- Cross-browser compatibility
- SEO optimization with meta tags
- Open Graph for social sharing
- Sitemap generation
- robots.txt configuration
- Google Analytics integration
- Performance optimization
- Lighthouse score: 90+
portfolio/
β
βββ client/ # React Frontend
β βββ public/
β β βββ index.html
β β βββ sitemap.xml
β β βββ robots.txt
β βββ src/
β β βββ components/
β β β βββ Header.jsx
β β β βββ Hero.jsx
β β β βββ About.jsx
β β β βββ Skills.jsx
β β β βββ Projects.jsx
β β β βββ ProjectCard.jsx
β β β βββ Experience.jsx
β β β βββ Contact.jsx
β β β βββ Footer.jsx
β β βββ pages/
β β β βββ Home.jsx
β β β βββ NotFound.jsx
β β βββ styles/
β β β βββ index.css
β β β βββ animations.css
β β β βββ responsive.css
β β βββ utils/
β β β βββ api.js
β β β βββ constants.js
β β βββ hooks/
β β β βββ useIntersection.js
β β β βββ useTheme.js
β β βββ App.jsx
β β βββ index.js
β βββ .env.example
β βββ package.json
β
βββ server/ # Node.js Backend
β βββ routes/
β β βββ projects.js
β β βββ contact.js
β β βββ skills.js
β βββ controllers/
β β βββ projectController.js
β β βββ contactController.js
β β βββ skillController.js
β βββ models/
β β βββ Project.js
β β βββ Contact.js
β β βββ Skill.js
β βββ middleware/
β β βββ errorHandler.js
β β βββ validation.js
β β βββ cors.js
β βββ config/
β β βββ database.js
β β βββ email.js
β βββ .env.example
β βββ server.js
β βββ package.json
β
βββ .gitignore
βββ README.md
βββ package.json (root)
- Node.js (v18 or higher)
- npm or yarn package manager
- MongoDB (local or MongoDB Atlas account)
- Git
- Clone the repository:
git clone https://github.com/Ashwin-Chavhan/Portfolio-Website.git
cd Portfolio-Website/server- Install dependencies:
npm install- Create environment file:
cp .env.example .env-
Configure environment variables (see Environment Variables)
-
Start the backend server:
npm startBackend will run on: http://localhost:5000
- Navigate to client directory:
cd portfolio/client- Install dependencies:
npm install- Create environment file:
cp .env.example .env.local- Configure environment variables:
REACT_APP_API_BASE_URL=http://localhost:5000
REACT_APP_GA_ID=your_google_analytics_id- Start the development server:
npm startFrontend will run on: http://localhost:3000
# MongoDB Connection
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/portfolio
# Server Configuration
PORT=5000
NODE_ENV=development
# CORS Configuration
CORS_ORIGIN=http://localhost:3000
# Email Service (Nodemailer)
EMAIL_SERVICE=gmail
EMAIL_USER=your_email@gmail.com
EMAIL_PASSWORD=your_app_password
# Recipient Email
RECIPIENT_EMAIL=ashwinc763@gmail.com
# JWT Secret (if using authentication)
JWT_SECRET=your_jwt_secret_key
# Rate Limiting
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100REACT_APP_API_BASE_URL=http://localhost:5000
REACT_APP_GA_ID=your_google_analytics_id
REACT_APP_ENVIRONMENT=developmenthttp://localhost:5000/api
Fetch all projects
Response:
{
"success": true,
"data": [
{
"_id": "123abc",
"title": "E-Learning Platform",
"description": "Web-based learning platform...",
"technologies": ["React", "Node.js", "MongoDB"],
"liveLink": "https://example.com",
"githubLink": "https://github.com/...",
"featured": true
}
]
}Fetch single project by ID
Response:
{
"success": true,
"data": {
/* project object */
}
}Submit contact form
Request Body:
{
"name": "John Doe",
"email": "john@example.com",
"subject": "Inquiry",
"message": "Your message here..."
}Response:
{
"success": true,
"message": "Message sent successfully!",
"data": { "id": "123abc" }
}Fetch all skills
Response:
{
"success": true,
"data": [
{
"_id": "123abc",
"category": "Frontend",
"name": "React JS",
"proficiency": 85,
"yearsOfExperience": 1.5
}
]
}π MCA Final Year Project (Apr 2024 β Jun 2024)
A comprehensive web-based learning platform combining educational content management with e-commerce functionality.
Features:
- User authentication & authorization
- Dynamic course listings with categories
- Content Management System (CMS)
- Shopping cart & checkout system
- Payment gateway integration (planned)
- Responsive design
- Real-time content updates
Technologies:
- Frontend: HTML, CSS, JavaScript, Bootstrap, jQuery, Ajax
- Backend: PHP, XAMPP Server
- Database: MY SQL
- Authentication: JWT
Live Demo: [https://github.com/Ashwin-Chavhan/E-Learn-Avenue] GitHub: View Repository
π Internship Project (Feb 2024 β Jul 2024) | Topstech Pvt Ltd
Developed multiple client-facing responsive websites with modern design and optimal performance.
Features:
- Mobile-first responsive design
- Cross-browser compatibility testing
- Form validation with AJAX
- SEO optimization
- Performance optimization
- Database integration
Technologies:
- Frontend: HTML5, CSS3, JavaScript, Bootstrap, jQuery
- Backend: PHP, MySQL
- Tools: XAMPP, Git
Client Websites: 5+ live projects
π Personal Project (2024 β Present)
A modern, fully functional portfolio website showcasing full-stack development capabilities.
Features:
- Full MERN stack implementation
- Interactive animations & effects
- Functional contact form with email notifications
- Project filtering & search
- Dark/Light mode toggle
- Mobile-responsive design
- SEO optimized
- Performance optimized (Lighthouse: 90+)
Technologies:
- Frontend: React, Tailwind CSS, Framer Motion
- Backend: Node.js, Express, MongoDB
- Deployment: Vercel, Render.com, MongoDB Atlas
Live Demo: ashwinchavhan.com GitHub: View Repository
Performance: 95/100
Accessibility: 92/100
Best Practices: 94/100
SEO: 98/100
- β Code splitting with React.lazy()
- β Image optimization with lazy loading
- β Tree shaking for unused code removal
- β CSS minification and compression
- β Gzip compression
- β CDN for static assets
- β Browser caching strategy
- β Critical CSS inlining
- First Contentful Paint (FCP): < 1.5s
- Largest Contentful Paint (LCP): < 2.5s
- Cumulative Layout Shift (CLS): < 0.1
- Time to Interactive (TTI): < 3.5s
- β CORS properly configured
- β HTTPS/SSL enabled
- β Helmet.js security headers
- β Rate limiting on API endpoints
- β Input validation & sanitization
- β XSS protection (DOMPurify)
- β CSRF protection
- β Environment variables for sensitive data
- β MongoDB injection prevention
- β Secure headers (CSP, X-Frame-Options, X-Content-Type-Options)
- No sensitive data in frontend
- API keys stored securely
- Regular dependency updates
- Error handling without exposing internals
- Secure password handling
- Audit logging for critical operations
# Deploy with Netlify
Netlify
# Or connect GitHub repository to Netlify dashboard
# Automatic deployments on push to main branchLive URL: ashwinchavhan.com
- Push code to GitHub repository
- Connect Render.com to GitHub
- Configure environment variables
- Deploy
API URL: https://portfolio-api.render.com
- Create MongoDB Atlas account
- Create a cluster
- Get connection string
- Add to
.envfile - Database automatically synced
Contributions, issues, and feature requests are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
# Install dependencies
npm install
# Start development servers
npm run dev
# Build for production
npm run build
# Run tests
npm test
# Lint code
npm run lintI'm open to opportunities and collaborations!
- π§ Email: ashwinc763@gmail.com
- π± Phone: +91 9284336654
- π LinkedIn: linkedin.com/in/ashwin-chavhan
- π» GitHub: github.com/ashwinchavhan
- π Portfolio: ashwinchavhan.com
This project is open source and available under the MIT License.
- Thanks to RTMNU IICC, Nagpur for the MCA degree
- Thanks to Topstech Pvt Ltd for the internship opportunity
- Inspired by modern design practices and developer aesthetics
- Built with β€οΈ and coffee
Made with β€οΈ by Ashwin Chavhan
β If you find this portfolio helpful, please consider giving it a star!