A modern, dynamic, and responsive portfolio website showcasing my journey as a Full Stack Developer and AI/ML Engineer. Built with cutting-edge technologies and featuring a complete backend API for dynamic content management.
- Live Website: [Your Portfolio URL]
- API Documentation: [Your API URL]/docs
- Features
- Technologies Used
- Getting Started
- Usage
- API Documentation
- Project Structure
- Roadmap
- Contributing
- License
- Contact
- Modern Design: Clean, professional, and responsive design following current UI/UX trends
- Interactive Navigation: Smooth scrolling navigation with animated sections
- Dynamic Content: Real-time data loading from backend APIs
- Loading States: Professional loading indicators and skeleton screens
- Error Handling: Graceful error states with retry functionality
- Contact Form: Functional contact form with backend integration
- Mobile Responsive: Optimized for all device sizes
- Professional Animations: Hover effects, transitions, and micro-interactions
- RESTful APIs: Complete CRUD operations for all portfolio sections
- Data Management: MongoDB integration for dynamic content storage
- Contact Management: Contact form submissions stored in database
- Error Handling: Comprehensive error responses and validation
- CORS Support: Proper cross-origin resource sharing configuration
- API Documentation: Auto-generated API documentation with FastAPI
- Hero Section: Dynamic introduction with personal information
- About: Professional bio, achievements, and statistics
- Experience: Work history with detailed responsibilities and technologies
- Projects: Featured projects with categories, technologies, and links
- Skills: Categorized technical skills and competencies
- Education: Academic background and achievements
- Contact: Working contact form with message storage
- React (v19.0.0) - Modern JavaScript library for building user interfaces
- Tailwind CSS (v3.4.17) - Utility-first CSS framework for rapid UI development
- shadcn/ui - High-quality, accessible React component library
- Lucide React - Beautiful, customizable SVG icons
- Axios - Promise-based HTTP client for API requests
- React Router Dom (v7.5.1) - Declarative routing for React applications
- FastAPI (v0.110.1) - Modern, fast web framework for building APIs with Python
- MongoDB with Motor (v3.3.1) - Async MongoDB driver for Python
- Pydantic (v2.6.4+) - Data validation using Python type annotations
- Python (3.8+) - Core programming language
- CORS Middleware - Cross-origin resource sharing support
- Docker - Containerization for consistent development environments
- Supervisor - Process management for running multiple services
- Git - Version control system
- ESLint - JavaScript/TypeScript linting
- Craco - Create React App Configuration Override
Before running this project, make sure you have the following installed:
- Node.js (v16 or higher)
- Python (v3.8 or higher)
- MongoDB (v4.4 or higher)
- Yarn (recommended) or npm
- Git
-
Clone the repository
git clone https://github.com/ShreyaMP1999/portfolio-website.git cd portfolio-website -
Install Frontend Dependencies
cd frontend yarn install # or npm install
-
Install Backend Dependencies
cd ../backend pip install -r requirements.txt
-
Backend Environment Variables
Create a
.envfile in thebackenddirectory:MONGO_URL=mongodb://localhost:27017 DB_NAME=portfolio_db
-
Frontend Environment Variables
Create a
.envfile in thefrontenddirectory:REACT_APP_BACKEND_URL=http://localhost:8001
-
Start all services
sudo supervisorctl start all
-
Check service status
sudo supervisorctl status
-
Start MongoDB
sudo systemctl start mongod
-
Seed the Database
cd backend python seed_database.py -
Start Backend Server
cd backend uvicorn server:app --host 0.0.0.0 --port 8001 --reload -
Start Frontend Development Server
cd frontend yarn start # or npm start
-
Access the Application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8001
- API Documentation: http://localhost:8001/docs
Simply navigate to http://localhost:3000 to view the complete portfolio website with all sections populated with real data from the backend.
The backend provides RESTful APIs for managing portfolio content:
- Personal Info:
GET/PUT /api/personal/ - Experience:
GET/POST/PUT/DELETE /api/experience/ - Projects:
GET/POST/PUT/DELETE /api/projects/ - Skills:
GET/POST/PUT/DELETE /api/skills/ - Achievements:
GET/POST/PUT/DELETE /api/achievements/ - Education:
GET/POST/PUT/DELETE /api/education/ - Contact:
POST /api/contact/
Use the API endpoints to add new projects, experiences, or skills:
# Example: Adding a new project
import requests
project_data = {
"title": "New Amazing Project",
"description": "A brief description of the project",
"technologies": ["React", "Python", "MongoDB"],
"github": "https://github.com/username/project",
"demo": "https://project-demo.com",
"category": "Full Stack"
}
response = requests.post("http://localhost:8001/api/projects/", json=project_data)The complete API documentation is automatically generated and available at:
- Swagger UI: http://localhost:8001/docs
- ReDoc: http://localhost:8001/redoc
portfolio-website/
βββ frontend/ # React frontend application
β βββ src/
β β βββ components/ # React components
β β β βββ ui/ # shadcn/ui components
β β β βββ About.jsx
β β β βββ Contact.jsx
β β β βββ Experience.jsx
β β β βββ Header.jsx
β β β βββ Hero.jsx
β β β βββ Projects.jsx
β β β βββ Skills.jsx
β β βββ services/ # API service layer
β β β βββ api.js
β β βββ hooks/ # Custom React hooks
β β β βββ useApi.js
β β βββ App.js # Main App component
β β βββ index.js # Entry point
β βββ package.json
β βββ tailwind.config.js
βββ backend/ # FastAPI backend application
β βββ models/ # Pydantic models
β β βββ PersonalInfo.py
β β βββ Experience.py
β β βββ Project.py
β β βββ Skill.py
β β βββ Achievement.py
β β βββ Education.py
β β βββ ContactMessage.py
β βββ routes/ # API route handlers
β β βββ personal.py
β β βββ experience.py
β β βββ projects.py
β β βββ skills.py
β β βββ achievements.py
β β βββ education.py
β β βββ contact.py
β βββ database.py # MongoDB connection
β βββ server.py # FastAPI application
β βββ seed_database.py # Database seeding script
β βββ requirements.txt
βββ contracts.md # API contracts documentation
βββ test_result.md # Testing documentation
βββ README.md # This file
- Full-stack architecture implementation
- Dynamic content management
- Contact form functionality
- Responsive design
- API documentation
- Admin Dashboard: Web-based admin panel for content management
- Authentication: JWT-based authentication for admin features
- Image Upload: File upload functionality for project images
- Analytics: Visitor tracking and portfolio analytics
- Blog Section: Dynamic blog with markdown support
- SSG/SSR: Server-side generation for better SEO
- CDN Integration: Image optimization and content delivery
- Performance Optimization: Code splitting and lazy loading
- SEO Enhancement: Meta tags, schema markup, and sitemap
- CI/CD Pipeline: Automated testing and deployment
- Email Notifications: Automated email responses for contact form
- Social Media Integration: Dynamic social media feeds
- Multi-language Support: Internationalization (i18n)
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create a feature branch:
git checkout -b feature/AmazingFeature - Make your changes following the existing code style
- Test your changes thoroughly
- Commit your changes:
git commit -m 'Add some AmazingFeature' - Push to the branch:
git push origin feature/AmazingFeature - Open a Pull Request
- Follow existing code formatting and naming conventions
- Add comments for complex logic
- Ensure all tests pass before submitting
- Update documentation for new features
- Use the GitHub Issues tab to report bugs
- Include steps to reproduce the issue
- Provide screenshots if applicable
- Specify your environment details
This project is licensed under the MIT License - see the LICENSE file for details.
Shreya Padaganur
- Email: shreyamp1999@gmail.com
- LinkedIn: linkedin.com/in/shreyamp
- GitHub: github.com/ShreyaMP1999
- Portfolio: [Your Portfolio URL]
- shadcn/ui for the beautiful component library
- Lucide for the amazing icon set
- Tailwind CSS for the utility-first CSS framework
- FastAPI for the excellent Python web framework
- React for the powerful frontend library
β If you found this project helpful, please consider giving it a star!
Made with β€οΈ and lots of β by Shreya Padaganur