PortfolioGen is an innovative web application that transforms resumes into professional portfolio websites using artificial intelligence. The platform allows users to upload their resumes in PDF format and automatically generates a fully functional, responsive portfolio website in minutes, eliminating the need for coding or design skills.
This solution bridges the gap between traditional resumes and modern digital portfolios by leveraging AI to analyze resume content and produce customized web portfolios that showcase professional experience, skills, and accomplishments in an engaging online format.
- PDF resume upload with text extraction capabilities
- Automated content analysis and structuring
- Support for standard resume formats and layouts
- Automatic conversion of resume content to portfolio sections
- Smart layout selection based on content type and volume
- Responsive design implementation for all device sizes
- Complete HTML, CSS, and JavaScript files
- Clean, modern design templates
- Optimized for performance and accessibility
- Easy customization options for further personalization
- Simple three-step process: Upload, Generate, Download
- Real-time progress tracking during generation
- Preview functionality before final download
- Intuitive interface with clear guidance at each step
- Upload Resume: Users upload their professional resume in PDF format through a secure upload interface. The system validates file type and size, then extracts text content for processing.
- AI Analysis and Generation: Advanced AI algorithms analyze the extracted resume content, identifying key sections such as professional experience, education, skills, and projects. The system then generates appropriate HTML, CSS, and JavaScript code to create a cohesive portfolio website.
- Preview and Download: Users can preview their generated portfolio in a browser before downloading the complete website package as a single HTML file. The output is ready for immediate use or further customization.
- HTML5 with semantic markup
- CSS3 with custom properties and modern layouts
- JavaScript for interactive functionality
- Bootstrap 5 for responsive framework
- Font Awesome for iconography
- Circular Std font for typography
- Python Flask web framework
- PDF text extraction using pdfplumber
- AI integration with Google Gemini API
- Fallback support with Groq API
- Session-based job management
- File handling and storage system
- Environment configuration via python-dotenv
- UUID generation for job tracking
- Comprehensive error handling
- Logging for debugging and monitoring
- File cleanup automation
PortfolioGen/
├── app.py # Main Flask application
├── libraries.py # Core AI and PDF processing logic
├── prompt_template.txt # AI generation instructions
├── requirements.txt # Python dependencies
├── .env # Environment configuration
├── static/
│ ├── uploads/ # Temporary resume storage
│ └── generated/ # Generated portfolio files
└── templates/
└── index.html # Frontend interface
- Clone or download the project files
git clone https://github.com/nishchal-kansara/PortfolioGen.git - Install required dependencies
pip install -r requirements.txt - Configure environment variables in
.envfile
GOOGLE_API_KEY=
GROQ_API_KEY=
FLASK_APP=app.py
FLASK_ENV=development
- Run the application
python app.py - Access the application at
http://localhost:5000
The application supports two AI service providers:
- Primary: Google Gemini API (gemini-2.5-flash model)
- Fallback: Groq API (Llama 4 Maverick model)
At least one API key must be configured in the .env file for the application to function. The system will automatically use the fallback service if the primary service encounters issues.
https://drive.google.com/file/d/1WwTUiTSlHzuTHe5u-tYe8UgPi6oGR2B9/view
The application uses pdfplumber library to extract text from PDF resumes. The extracted content is then structured and prepared for AI processing, ensuring accurate interpretation of professional information.
A carefully crafted prompt template guides the AI in generating appropriate portfolio code. The system enforces consistent output format and includes necessary assets such as Bootstrap, Font Awesome, and Google Fonts.
Uploaded files and generated portfolios are stored temporarily and automatically cleaned up to manage storage efficiently. Each generation job receives a unique identifier for tracking and management.
- File type validation for PDF uploads
- Size limits to prevent abuse
- Secure session management
- No persistent storage of sensitive information
- API key protection through environment variables
Planned improvements for future versions include:
- Additional portfolio templates and styles
- Direct deployment options to hosting services
- Enhanced resume format support
- Portfolio customization interface
- Export options for different frameworks
- Integration with professional networking platforms