Automatic portfolio project generator
Project description
PortfolioGen
A Python package that automatically generates portfolio project folders with HTML, CSS, and JavaScript files.
Features
- 🚀 Easy to use: Simple CLI and Python API
- 📁 Complete structure: Generates HTML, CSS, JS, and assets folder
- 🎨 Template support: Multiple templates (extensible for future themes)
- 🔧 Customizable: Custom folder names and template selection
- 📦 Pip installable: Standard Python package installation
- 🌐 UTF-8 encoding: Proper file encoding for international characters
- ⚡ Error handling: Graceful handling of existing folders
Installation
From PyPI (when published)
pip install portfoliogen
From source
git clone https://github.com/sameer-lamichhane/portfoliogen.git
cd portfoliogen
pip install -e .
Usage
Command Line Interface
Generate a portfolio with default name "MyPortfolio":
portfoliogen
Generate a portfolio with custom name:
portfoliogen MyAwesomePortfolio
Generate with specific template:
portfoliogen MyPortfolio --template modern
Show help:
portfoliogen --help
Python API
from portfoliogen import generate_portfolio
# Generate with default settings
portfolio_path = generate_portfolio()
print(f"Portfolio created at: {portfolio_path}")
# Generate with custom name
portfolio_path = generate_portfolio("MyCustomPortfolio")
# Generate with template (future feature)
portfolio_path = generate_portfolio("MyPortfolio", template="modern")
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 smooth scrolling and animations
├── assets/ # Folder for images and media
│ └── README.md # Placeholder file
Templates
Currently supported templates:
default: Clean, professional portfolio layoutminimal: (Coming soon) Minimalist designmodern: (Coming soon) Modern, trendy layoutdark: (Coming soon) Dark theme portfolio
File Contents
HTML Features
- Responsive design with mobile-first approach
- Navigation with smooth scrolling
- Sections for About, Projects, and Contact
- Semantic HTML structure
- Meta tags for SEO
CSS Features
- Modern CSS Grid and Flexbox layouts
- Smooth animations and transitions
- Responsive breakpoints
- Professional color scheme
- Hover effects and interactions
JavaScript Features
- Smooth scrolling navigation
- Scroll-based header effects
- Intersection Observer for animations
- Utility functions for dynamic content
- Modern ES6+ syntax
Development
Setting up development environment
git clone https://github.com/sameer-lamichhane/portfoliogen.git
cd portfoliogen
pip install -e ".[dev]"
Running tests
pytest
Code formatting
black portfoliogen/
flake8 portfoliogen/
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.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, modern, dark)
- Custom CSS/JS injection
- Image optimization
- Live preview server
- Template customization options
- Integration with popular CSS frameworks
Support
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Contact: your.email@examp
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.0.0.tar.gz.
File metadata
- Download URL: portfoliogen-1.0.0.tar.gz
- Upload date:
- Size: 32.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d389440711d3d291329f67cc3949765cd4d2d98ea7a82ac470ea7cb6c8bd6b1e
|
|
| MD5 |
10ce31b3d4c841d1d35133325adb9f8b
|
|
| BLAKE2b-256 |
016cf0dd1c471550607802166c010fb95d6f65b3e33ca18d00bf0ca3c5b1005b
|
File details
Details for the file portfoliogen-1.0.0-py3-none-any.whl.
File metadata
- Download URL: portfoliogen-1.0.0-py3-none-any.whl
- Upload date:
- Size: 31.2 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 |
a878ff52fbcb67fa3a439e350ab18f776862fc18882bd0f618716f6b1d6cfd1f
|
|
| MD5 |
356578e7ef3c60c5da1a87abc8802f04
|
|
| BLAKE2b-256 |
864bc9a09be6a66d8a6340c8c60962695272b5e88cc5673225dbe748e6f5ad9a
|