da-proj
v1.1.4
Published
CLI tool to setup portfolio project metadata with automatic GitHub Actions sync
Downloads
629
Maintainers
Readme
da-proj
🚀 Automatiza tu portfolio de desarrollador - CLI tool que simplifica la gestión de metadata de proyectos y sincronización con tu portfolio web.
¿Por qué da-proj?
Como desarrollador, mantener tu portfolio actualizado puede ser tedioso. Cada vez que terminas un proyecto, necesitas:
- Crear metadata estructurada
- Configurar GitHub Actions
- Sincronizar con tu portfolio web
- Gestionar API keys en múltiples dispositivos
da-proj hace todo esto por ti con comandos simples e interactivos.
✨ Características
📝 Generación Automática de Metadata
- Crea archivos
.project-metadata.mdxcon formato estructurado - Valida con JSON Schema automáticamente
- Incluye toda la información de tu proyecto (título, tecnologías, imágenes, etc.)
🔄 Sincronización con Portfolio
- GitHub Actions workflow pre-configurado
- Sincroniza automáticamente cuando haces push
- Notifica a tu API de portfolio con los cambios
🔐 Gestión de API Keys
- Configura GitHub Secrets fácilmente desde la terminal
- Múltiples perfiles para diferentes portfolios
- Sincronización de configuración entre dispositivos vía GitHub
📁 Organización de Imágenes
- Carpeta
proj-images/lista para usar - README con guías de optimización
- Estructura consistente en todos tus proyectos
🚀 Inicio Rápido
Instalación
No necesitas instalar nada. Usa directamente con npx o bunx:
# Con npm
npx da-proj --init
# Con bun (recomendado)
bunx da-proj --initO instala globalmente:
npm install -g da-proj
# o
bun install -g da-projUso Básico
1. Inicializar un Proyecto
cd tu-proyecto
bunx da-proj --initEl CLI te guiará con preguntas interactivas:
- 📌 Título del proyecto
- 🏷️ Categoría (Web Development, AI/ML, Mobile, etc.)
- ⭐ Tipo (featured o small)
- 📊 Estado (active, in-progress, archived)
- 💻 Tecnologías utilizadas
- 🔗 URLs de demo y repositorio
- 🖼️ Rutas de imágenes
2. Configurar GitHub Secrets
bunx da-proj --secretsEsto te permite:
- Crear/seleccionar perfiles de portfolio
- Configurar
PORTFOLIO_API_URLyPORTFOLIO_API_KEY - Guardar perfiles para reutilizar en otros proyectos
3. Sincronizar Configuración (Opcional)
Si trabajas en múltiples dispositivos:
# Primera vez: Configurar GitHub sync
bunx da-proj --setup-github-sync
# Subir configuración
bunx da-proj --push
# En otro dispositivo: Descargar configuración
bunx da-proj --pull
# Ver estado de sincronización
bunx da-proj --sync-status📂 Archivos Generados
Después de ejecutar --init, se crearán:
tu-proyecto/
├── .project-metadata.mdx # ✨ Metadata del proyecto
├── .project-schema.json # 📋 Schema de validación
├── .github/
│ └── workflows/
│ └── sync-portfolio.yml # 🔄 GitHub Actions workflow
├── proj-images/ # 🖼️ Carpeta para imágenes
│ ├── README.md # 📖 Guía de imágenes
│ └── .gitkeep
└── README.md # 📄 README profesional (si no existe)Ejemplo de .project-metadata.mdx
---
title: "Mi App Increíble"
category: "Web Development"
type: "featured"
status: "active"
technologies:
- React
- TypeScript
- Node.js
- PostgreSQL
images:
cover: /proj-images/cover.png
gallery:
- /proj-images/screenshot1.png
- /proj-images/screenshot2.png
repository: https://github.com/usuario/mi-app
demo: https://mi-app.vercel.app
---
# Mi App Increíble
## Descripción
Una aplicación web moderna que resuelve [problema específico]...
## Características Principales
- ✅ Feature 1
- ✅ Feature 2
- ✅ Feature 3🔧 Comandos Disponibles
Comandos Principales
# Inicializar metadata del proyecto
bunx da-proj --init
# Configurar GitHub secrets
bunx da-proj --secrets
# Sincronizar configuración (export/import manual)
bunx da-proj --sync
# Mostrar ayuda
bunx da-proj --helpComandos de GitHub Sync
# Configurar sincronización vía GitHub
bunx da-proj --setup-github-sync
# Subir configuración local a GitHub
bunx da-proj --push
# Descargar configuración desde GitHub
bunx da-proj --pull
# Ver estado de sincronización
bunx da-proj --sync-status🔐 Configuración de GitHub Secrets
Opción 1: Usando el CLI (Recomendado)
bunx da-proj --secretsEl CLI te guiará para:
- Verificar que GitHub CLI esté instalado
- Crear o seleccionar un perfil
- Configurar automáticamente los secrets en tu repo
Opción 2: Manual
- Ve a tu repositorio en GitHub
- Settings → Secrets and variables → Actions
- Agrega estos secrets:
PORTFOLIO_API_URL: URL de tu API de portfolioPORTFOLIO_API_KEY: Tu API key
📖 Guía detallada: Ver docs/SETUP-SECRETS.md
🌐 Sincronización entre Dispositivos
¿Por qué sincronizar?
Si trabajas en múltiples computadoras (PC de escritorio, laptop, etc.), puedes sincronizar tus perfiles de portfolio usando GitHub.
Configuración (Una sola vez)
# En tu primera PC
bunx da-proj --setup-github-sync
# → Crea un repo privado "da-proj-secrets"
bunx da-proj --push
# → Sube tu configuraciónUso en Otros Dispositivos
# En tu laptop
bunx da-proj --setup-github-sync
# → Conecta al repo existente
bunx da-proj --pull
# → Descarga todos tus perfiles📖 Guía completa: Ver docs/GITHUB-SYNC.md
🎯 Casos de Uso
Freelancer con Múltiples Clientes
# Crear perfiles para cada cliente
bunx da-proj --secrets
# → Perfil "cliente-acme" con su portfolio
# → Perfil "cliente-tech" con su portfolio
# → Perfil "personal" con tu portfolio
# En cada proyecto, selecciona el perfil apropiado
cd proyecto-acme
bunx da-proj --secrets # Selecciona "cliente-acme"Desarrollador con Portfolio Personal
# Una sola vez
bunx da-proj --secrets
# → Crea perfil "main"
# En cada nuevo proyecto
cd nuevo-proyecto
bunx da-proj --init # Genera metadata
bunx da-proj --secrets # Usa perfil "main"Equipo Compartiendo Configuración
# Líder del equipo
bunx da-proj --setup-github-sync
bunx da-proj --push
# Miembros del equipo
bunx da-proj --setup-github-sync # Conecta al repo compartido
bunx da-proj --pull # Descarga configuración🛠️ Desarrollo
Requisitos
- Bun runtime (recomendado) o Node.js 18+
- Git repository inicializado
- GitHub CLI (para comandos de secrets y sync)
Setup Local
# Clonar el repositorio
git clone https://github.com/tu-usuario/da-proj.git
cd da-proj
# Instalar dependencias
bun install
# Ejecutar en modo desarrollo
bun run dev --init
# Compilar
bun run buildEstructura del Proyecto
da-proj/
├── src/
│ ├── commands/ # Comandos del CLI
│ │ ├── init.ts # Inicializar proyecto
│ │ ├── secrets.ts # Configurar GitHub secrets
│ │ ├── sync.ts # Sincronización manual
│ │ ├── setup-github-sync.ts
│ │ ├── push.ts
│ │ ├── pull.ts
│ │ └── sync-status.ts
│ ├── generators/ # Generadores de archivos
│ ├── utils/ # Utilidades
│ │ ├── github.ts # GitHub CLI/API
│ │ ├── github-config.ts
│ │ └── config.ts
│ ├── types/ # TypeScript types
│ └── index.ts # Entry point
├── docs/ # Documentación
└── package.jsonPublicar en NPM
Este proyecto usa GitHub Actions para publicar automáticamente en npm cuando cambias la versión en package.json.
Proceso rápido:
# 1. Actualizar versión
npm version patch # o minor, o major
# 2. Actualizar CHANGELOG.md con los cambios
# 3. Commit y push
git add package.json CHANGELOG.md
git commit -m "chore: bump version to X.X.X"
git push origin main
# 4. El workflow automáticamente:
# - Detecta el cambio de versión
# - Compila el paquete
# - Publica en npm
# - Crea un git tag📖 Guía completa: Ver docs/NPM-PUBLISH.md
📚 Documentación
- Setup de Secrets - Guía detallada de configuración
- GitHub Sync - Sincronización entre dispositivos
- Publicación en NPM - Automatización de publicaciones
- Workflow Explicado - Cómo funciona GitHub Actions
- Arquitectura - Estructura del código
🤝 Contribuir
Las contribuciones son bienvenidas! Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/amazing-feature) - Commit tus cambios (
git commit -m 'Add amazing feature') - Push a la rama (
git push origin feature/amazing-feature) - Abre un Pull Request
📝 Changelog
Ver CHANGELOG.md para historial de cambios.
📄 Licencia
MIT © Dereck Angeles
💬 Soporte
¿Tienes preguntas o problemas?
- 📧 Email: [email protected]
- 🐛 Issues: GitHub Issues
- 📖 Docs: Documentación completa
💼 Hecho con ❤️ para automatizar portfolios de desarrolladores
⭐ Si te gusta este proyecto, dale una estrella en GitHub!
