Skip to main content

Interactive CLI business card for Carlos Ferreyra

Project description

Carlos Ferreyra CLI Business Card (Python)

A modern, interactive CLI business card showcasing Carlos Ferreyra's portfolio and contact information with beautiful animations and rich terminal formatting.

Built with Python and optimized for uvx - the universal package runner.

License: MIT Python uvx

Features

  • 🎨 Beautiful terminal formatting with Rich
  • 📧 Direct email contact
  • 📥 Quick resume access
  • 🌐 Portfolio website access
  • 💻 Professional links (GitHub, LinkedIn, Twitter)
  • ⚡ Fast and responsive interface
  • 🖥️ Interactive CLI menu
  • 🚀 ASCII art banner with animations
  • 📦 Zero-install execution with uvx

Quick Start

Run the business card directly with uvx (no installation required):

uvx carlosferreyra

Alternative Installation Methods

Using pip

pip install carlosferreyra
carlosferreyra

Using uv

uv tool install carlosferreyra
carlosferreyra

Development

Prerequisites

  • Python 3.13+
  • uv (recommended) or pip

Setup

# Clone the repository
git clone https://github.com/carlosferreyra/carlosferreyra-cli-py.git
cd carlosferreyra-cli-py

# Install dependencies with uv
uv sync

# Run in development mode
uv run python -m carlosferreyra

# Or install in development mode
uv pip install -e .
carlosferreyra

Building and Publishing

# Build the package
uv build

# Publish to PyPI (requires authentication)
uv publish

Technologies Used

  • Python 3.13+ - Modern Python features
  • Rich - Beautiful terminal formatting and animations
  • PyFiglet - ASCII art text generation
  • Inquirer - Interactive CLI prompts
  • Click - Command line interface framework
  • Colorama - Cross-platform colored terminal text

Project Structure

src/carlosferreyra/
├── __init__.py          # Package initialization
├── __main__.py          # Main application entry point
├── config.py            # Personal information and configuration
├── utils.py             # Utility functions for animations
├── banner.py            # Welcome banner with ASCII art
├── card.py              # Business card display
├── menu.py              # Interactive menu system
└── actions.py           # Action handlers for menu options

Customization

To customize this business card for yourself:

  1. Update the personal information in src/carlosferreyra/config.py
  2. Modify theme colors and animation speeds
  3. Add or remove menu options in src/carlosferreyra/menu.py
  4. Update action handlers in src/carlosferreyra/actions.py

uvx vs npx Comparison

This Python CLI is designed to be the equivalent of the TypeScript version but optimized for Python tooling:

Feature TypeScript (npx) Python (uvx)
Runtime Node.js Python
Package Manager npm PyPI
Zero-install run npx carlosferreyra uvx carlosferreyra
Installation npm install -g carlosferreyra uv tool install carlosferreyra

Connect with Carlos

License

This project is licensed under the MIT License. See the LICENSE file for details.

Tutorial: Creating Your Own uvx CLI

This project serves as a complete example of how to create a modern Python CLI that works with uvx. Key learnings:

1. Project Structure

  • Use src/ layout for better packaging
  • Include py.typed for type information
  • Configure entry points in pyproject.toml

2. uvx Compatibility

  • Ensure fast startup time
  • Minimize dependencies
  • Use standard library when possible
  • Configure proper entry points

3. Rich Terminal Experience

  • Use Rich for beautiful formatting
  • Implement smooth animations
  • Create interactive menus
  • Handle terminal clearing and sizing

4. Cross-platform Compatibility

  • Use webbrowser module for URL opening
  • Handle keyboard interrupts gracefully
  • Test on multiple platforms

This CLI demonstrates how to create engaging terminal applications that users can run instantly with uvx carlosferreyra!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carlosferreyra-0.1.0.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

carlosferreyra-0.1.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file carlosferreyra-0.1.0.tar.gz.

File metadata

  • Download URL: carlosferreyra-0.1.0.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for carlosferreyra-0.1.0.tar.gz
Algorithm Hash digest
SHA256 97503f9af8ed04f769042fa74bb078e1fcf83bdb885a8c71bac6f2c6932cf6dd
MD5 61389b3171a8346cf4286addc1c7fe13
BLAKE2b-256 de01f4487f42a0d2d9ec19bd44a20bf15afefe1213c079759a1956aee9905644

See more details on using hashes here.

Provenance

The following attestation bundles were made for carlosferreyra-0.1.0.tar.gz:

Publisher: release.yml on carlosferreyra/carlosferreyra-cli-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file carlosferreyra-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: carlosferreyra-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for carlosferreyra-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ddd5831b931b8c70cadedd2e1ef1e770e847fcc1affc09484339e6ee919aaaaf
MD5 68483d97287fa5a7a6ec70fdd819766b
BLAKE2b-256 252dc32e3b5452fc08401a4c8c718d4e72be536279a40f255b8367fe6c99a52e

See more details on using hashes here.

Provenance

The following attestation bundles were made for carlosferreyra-0.1.0-py3-none-any.whl:

Publisher: release.yml on carlosferreyra/carlosferreyra-cli-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page