Automatic portfolio project generator
Project description
PortfolioGen
A Python package that automatically generates professional portfolio websites with HTML, CSS, and JavaScript files. Choose from multiple templates designed for different professions and use cases.
Features
- 🚀 Easy to use: Simple CLI and Python API
- 🎨 Multiple Templates: Developer and Photography portfolio templates
- 📱 Responsive Design: Mobile-first, works on all devices
- 🔧 Customizable: Custom folder names and template selection
- 📦 Pip installable: Standard Python package installation
- 🌐 UTF-8 encoding: Proper file encoding for international characters
- ⚡ Modern Features: Smooth animations, interactive components
- 📋 Template Listing: Easy discovery of available templates
Installation
From PyPI
pip install portfoliogen
From source
git clone https://github.com/sameer-lamichhane/portfoliogen.git
cd portfoliogen
pip install -e .
Usage
Command Line Interface
List available templates:
portfoliogen --list
Generate a developer portfolio (default):
portfoliogen MyDeveloperPortfolio
Generate a photography portfolio:
portfoliogen -t photographer MyPhotographyPortfolio
Generate with specific template:
portfoliogen -t developer MyDevPortfolio
Show help:
portfoliogen --help
Python API
from portfoliogen import generate_portfolio
# Generate developer portfolio (default)
portfolio_path = generate_portfolio("MyPortfolio")
print(f"Portfolio created at: {portfolio_path}")
# Generate photography portfolio
portfolio_path = generate_portfolio("MyPhotos", template="photographer")
# Generate with custom name and template
portfolio_path = generate_portfolio("MyAwesomePortfolio", template="developer")
Templates
🖥️ Developer Template
Perfect for software developers, programmers, and tech professionals:
- Features: Project showcase, skills section, GitHub integration
- Sections: Hero, About, Skills, Projects, Experience, Contact
- Style: Clean, modern, tech-focused design
- Colors: Professional blue and gray palette
📸 Photographer Template
Designed for photographers, artists, and creative professionals:
- Features: Image gallery, testimonials, service pricing
- Sections: Hero, Portfolio Gallery, About, Services, Testimonials, Contact
- Style: Elegant, visual-focused with smooth animations
- Colors: Warm orange and sophisticated dark palette
- Interactive: Lightbox gallery, testimonial slider, contact form
Generated Structure
When you run PortfolioGen, it creates the following structure:
MyPortfolio/
├── index.html # Main HTML file with portfolio structure
├── styles.css # CSS styles with responsive design
├── script.js # JavaScript with animations and interactions
├── assets/ # Folder for images and media
│ └── README.md # Placeholder file with instructions
Template Features
Developer Template
- Responsive Grid Layout: Projects displayed in clean grid
- Smooth Scrolling: Navigation with smooth scroll effects
- Skills Visualization: Progress bars and skill indicators
- Contact Form: Functional contact form with validation
- Social Links: GitHub, LinkedIn, Twitter integration
Photographer Template
- Image Gallery: Filterable portfolio with categories
- Lightbox Viewer: Full-screen image viewing with navigation
- Testimonial Slider: Client testimonials with smooth transitions
- Service Cards: Pricing and service information
- Mobile Optimized: Touch-friendly navigation and interactions
- Performance: Optimized images and animations
CLI Commands
# List all available templates
portfoliogen --list
# Generate with developer template (default)
portfoliogen MyPortfolio
# Generate with photographer template
portfoliogen -t photographer MyPhotos
# Generate with custom folder name
portfoliogen "My Amazing Portfolio" -t developer
# Show version
portfoliogen --version
# Show help
portfoliogen --help
Customization Tips
Developer Portfolio
- Add your projects to the portfolio section
- Update skills and technologies in the about section
- Link to your GitHub, LinkedIn, and other profiles
- Replace placeholder content with your information
Photography Portfolio
- Replace sample images with your own photos
- Update contact information in the contact section
- Customize services and pricing to match your offerings
- Add your social media links (Instagram, Facebook, etc.)
Development
Setting up development environment
git clone https://github.com/sameer-lamichhane/portfoliogen.git
cd portfoliogen
pip install -e .
Testing the package locally
# Test CLI
python -m portfoliogen --list
python -m portfoliogen TestPortfolio -t photographer
# Test Python API
python -c "from portfoliogen import generate_portfolio; print(generate_portfolio('Test', 'developer'))"
Contributing
- 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
License
This project is licensed under the MIT License - see the LICENSE file for details.
Changelog
v1.2.0
- ✨ Added Photography template with gallery and testimonials
- 🎨 Enhanced Developer template with better responsive design
- 📋 Added
--listcommand to show available templates - 🔧 Improved CLI with better help and template validation
- 📱 Mobile-optimized designs for both templates
- ⚡ Performance improvements and smooth animations
v1.0.0
- Initial release
- Basic portfolio generation
- CLI and Python API
- Default template
- UTF-8 encoding support
- Error handling for existing folders
Roadmap
- Additional templates (minimal, corporate, creative)
- Custom color scheme options
- Image optimization and compression
- Live preview server
- Template customization wizard
- Integration with popular CSS frameworks
- Dark mode variants
- Multi-language support
Support
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Contact: GitHub Profile
Examples
Quick Start
# Install the package
pip install portfoliogen
# List available templates
portfoliogen --list
# Create a developer portfolio
portfoliogen MyDevPortfolio
# Create a photography portfolio
portfoliogen -t photographer MyPhotoSite
Made with ❤️ by Sameer Lamichhane
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file portfoliogen-1.2.0.tar.gz.
File metadata
- Download URL: portfoliogen-1.2.0.tar.gz
- Upload date:
- Size: 53.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
218851bbabd40ae3343f6763996def603da594a1cf291ea363d0e9cc5b00cc6a
|
|
| MD5 |
93dd9c88c958ebf5bd0edc0fc10e343f
|
|
| BLAKE2b-256 |
75a24a82068342b731aa086900efc835e1ab0b69f8ef9270bba310ac88e4890a
|
File details
Details for the file portfoliogen-1.2.0-py3-none-any.whl.
File metadata
- Download URL: portfoliogen-1.2.0-py3-none-any.whl
- Upload date:
- Size: 52.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97ed8c27f19803c65428c4b6b158d33ddc790c3c171dff6577485b0f06e1d27e
|
|
| MD5 |
fbd6cdafe9f08212720fbd789cb663e9
|
|
| BLAKE2b-256 |
07a332da4b792c615e75ad6ec28282a8f31c633b5b3c5f0996170302871d4818
|