A CLI tool to present my CV
Project description
Terminal Resume
A modern, interactive Python CLI tool that displays your professional resume in a beautifully formatted terminal interface.
โจ Features
- ๐จ Beautiful Output - Rich text formatting with colors, tables, and panels
- ๐ Fast & Lightweight - Built with Typer for optimal performance
- ๐ผ Professional Display - Showcase work experience, projects, skills, and education
- ๐ฑ Contact Information - Easy access to your contact details
- ๐งช Well Tested - Comprehensive test suite with pytest
- ๐ฆ Easy Distribution - Install via pip
- ๐ฏ Type Safe - Full type hints for better IDE support
๐ฆ Installation
From PyPI (when published)
pip install sheikh-huzaif-resume
From Source
git clone https://github.com/sheikhhuzaif/terminal-resume
cd terminal-resume
pip install -e .
For Development
pip install -e ".[dev]"
# or
make install-dev
๐ Quick Start
After installation, you can use the CLI:
# Show help
sheikh-huzaif-resume --help
# Show version
sheikh-huzaif-resume --version
# Display contact information
sheikh-huzaif-resume contact
# Show professional summary
sheikh-huzaif-resume summary
# View work experience
sheikh-huzaif-resume work-exp
# Browse projects
sheikh-huzaif-resume projects
# Display education
sheikh-huzaif-resume education
# List skills
sheikh-huzaif-resume skills
# Show tool info
sheikh-huzaif-resume info
๐ Commands
contact
Display contact information including email, phone, LinkedIn, and GitHub.
sheikh-huzaif-resume contact
summary
Show professional summary and career overview.
sheikh-huzaif-resume summary
work-exp
View detailed work experience with companies, roles, and achievements.
sheikh-huzaif-resume work-exp
projects
Browse personal projects with descriptions, technologies, and links.
sheikh-huzaif-resume projects
education
Display educational background and qualifications.
sheikh-huzaif-resume education
skills
List technical skills organized by categories (languages, frameworks, tools, etc.).
sheikh-huzaif-resume skills
info
Display information about the CLI tool.
sheikh-huzaif-resume info
sheikh-huzaif-resume info --verbose
๐๏ธ Project Structure
terminal-resume/
โโโ src/
โ โโโ resume/
โ โโโ __init__.py
โ โโโ cli.py # Main CLI entry point
โ โโโ data.py # Resume data store
โ โโโ commands/ # Command implementations
โ โ โโโ __init__.py
โ โ โโโ contact.py
โ โ โโโ summary.py
โ โ โโโ work_exp.py
โ โ โโโ projects.py
โ โ โโโ education.py
โ โ โโโ skills.py
โ โ โโโ info.py
โ โโโ utils/ # Utility functions
โ โโโ __init__.py
โ โโโ helpers.py
โโโ tests/ # Test suite
โ โโโ __init__.py
โ โโโ test_helpers.py
โ โโโ test_commands.py
โโโ requirements/
โ โโโ requirements.txt # Production dependencies
โ โโโ requirements-dev.txt # Development dependencies
โโโ setup.py # Setup configuration
โโโ pyproject.toml # Modern Python project config
โโโ pytest.ini # Pytest configuration
โโโ Makefile # Convenient commands
โโโ LICENSE # MIT License
โโโ README.md
๐ ๏ธ Development
Setup Development Environment
# Clone the repository
git clone https://github.com/sheikhhuzaif/terminal-resume.git
cd terminal-resume
# Install development dependencies
make install-dev
# Or manually
pip install -e ".[dev]"
Running Tests
# Run all tests
make test
# Run with coverage
make test-cov
# Or directly with pytest
pytest
pytest --cov=resume --cov-report=html
Code Quality
# Format code with Black
make format
# Lint code
make lint
# Or run individually
black src/resume tests
flake8 src/resume tests
mypy src/resume
Running Locally
# Run directly
python -m resume.cli
# Or after installation
sheikh-huzaif-resume
# Using make
make run
๐ง Adding New Commands
- Create a new file in
src/resume/commands/:
# src/resume/commands/mycommand.py
import typer
from rich.console import Console
console = Console()
def main(
verbose: bool = typer.Option(False, "--verbose", "-v", help="Verbose output")
):
"""
Description of your command.
"""
console.print("[green]Command executed successfully![/green]")
- Register it in
src/resume/cli.py:
from .commands import contact, summary, mycommand
app.command(name="mycommand")(mycommand.main)
- Add tests in
tests/test_commands.py
๐ฆ Building and Publishing
Build Distribution
# Build wheel and source distribution
make build
# Or manually
python -m build
Publish to PyPI
# Test on TestPyPI first
make publish-test
# Publish to PyPI
make publish
# Or manually with twine
python -m twine upload dist/*
๐งฐ Dependencies
Core Dependencies
- typer[all]==0.9.0 - CLI framework with great UX
- rich==13.7.0 - Beautiful terminal formatting
- questionary==2.0.1 - Interactive prompts
- pyfiglet==1.0.2 - ASCII art text
Development Dependencies
- pytest==7.4.3 - Testing framework
- pytest-cov==4.1.0 - Code coverage
- black==23.12.1 - Code formatter
- flake8==7.0.0 - Linter
- mypy==1.8.0 - Type checker
๐ License
MIT License - see LICENSE file for details
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ง Contact
Sheikh Huzaif - sheikhhuzaif007@gmail.com
Project Link: https://github.com/sheikhhuzaif/terminal-resume
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 sheikh_huzaif_resume-1.0.3.tar.gz.
File metadata
- Download URL: sheikh_huzaif_resume-1.0.3.tar.gz
- Upload date:
- Size: 15.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
125ef85cea8b44ea7c8597c23cdfe62fc74823f69a65989c748915302c71a09b
|
|
| MD5 |
be03d7de190e24e48791aa445da727f9
|
|
| BLAKE2b-256 |
43c70c5576e0e94f328a29399ed2b8d7ebef4d43a1b30c2b035c266d012e85e4
|
File details
Details for the file sheikh_huzaif_resume-1.0.3-py3-none-any.whl.
File metadata
- Download URL: sheikh_huzaif_resume-1.0.3-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2556f644a91fcea6f323b2a320a1431a0280f76de6f4e22b003b31306a27c548
|
|
| MD5 |
3323f62de6a70f6765288f08c39cea7f
|
|
| BLAKE2b-256 |
14e0d0a5571861794d2090ee8ca9bb2be8bf68dd3c702314bf890978b32f0837
|