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-1.1.2.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

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

carlosferreyra-1.1.2-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for carlosferreyra-1.1.2.tar.gz
Algorithm Hash digest
SHA256 f1a73dffcb1601b51a8da1bc4ea8b49653a577f4b4646adf4b4ee904cff8e11e
MD5 6fd28c5dfa2a28e85322c1bb2951a72a
BLAKE2b-256 a3ddd5dfa19434b3d4bc4e58937c1f454df8c7b803dbddb9c1b83922e222e290

See more details on using hashes here.

Provenance

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

Publisher: release-pypi.yml on carlosferreyra/business-card

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-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: carlosferreyra-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 10.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-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e31a745c818df05474f1a22d9fc4169891fa8b7fafaff81cd6e04a120e6fdbf0
MD5 0e4aca65e951979d3e16c96ccc7cbab2
BLAKE2b-256 3cd3fab6defdcd93eeca02f7b9e59012abc826821c37c21e34862b385944d669

See more details on using hashes here.

Provenance

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

Publisher: release-pypi.yml on carlosferreyra/business-card

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