jrondan-task-cli
v1.0.0
Published
CLI tool profesional para gestionar tareas desde la terminal con prioridades, fechas límite, filtros y búsqueda
Maintainers
Readme
📝 TaskCLI
CLI tool profesional para gestionar tareas desde la terminal con prioridades, fechas límite, filtros y búsqueda.
✨ Características
- ✅ Gestión completa de tareas - Agregar, listar, completar, eliminar
- 🎨 Prioridades - Alta, media, baja con colores
- 📅 Fechas límite - Con ordenamiento automático y alertas de urgencia
- 🔍 Búsqueda - Encuentra tareas por palabra clave
- 🎯 Filtros - Por estado y prioridad
- 💾 Persistencia - Datos guardados en JSON
- 🧪 21 tests - Suite completa con Jest
- 🚀 CI/CD - Automatizado con GitHub Actions
🔧 Requisitos
- Node.js v14 o superior
- npm
📥 Instalación
- Clonar el repositorio:
git clone https://github.com/joserondan/task-cli.git
cd task-cli- Instalar dependencias:
npm install- Configurar variables de entorno:
cp .env.example .env🐳 Uso con Docker
Opción 1: Docker Compose (Recomendado)
# Construir imagen
docker compose build
# Ejecutar comandos
docker compose run --rm app node task.js add "Mi tarea"
docker compose run --rm app node task.js listOpción 2: Docker directo
# Construir imagen
docker build -t task-cli .
# Ejecutar
docker run --rm task-cli
docker run --rm task-cli node task.js add "Mi tarea"Opción 3: Scripts npm
npm run docker:build
npm run docker:run add "Mi tarea"
npm run docker:run listNota: Las tareas se guardan en ./data/tasks.json para persistencia.
🚀 Uso
Agregar tareas
# Tarea simple
node task.js add "Comprar leche"
# Con prioridad
node task.js add "Reunión importante" alta
# Con fecha límite
node task.js add "Entregar reporte" 2026-02-15
# Con prioridad y fecha
node task.js add "Proyecto urgente" alta 2026-02-10Listar tareas
# Ver todas
node task.js list
# Solo pendientes
node task.js list --pending
# Solo completadas
node task.js list --completed
# Por prioridad
node task.js list --priority altaBuscar tareas
node task.js search "reunión"
node task.js search "proyecto"Completar tarea
node task.js complete 1Eliminar tarea
node task.js delete 2Limpiar todas las tareas
node task.js clear📸 Ejemplos
$ node task.js add "Entregar proyecto" alta 2026-02-08
✅ Tarea agregada: "Entregar proyecto" [ALTA] 📅 2026-02-08
$ node task.js add "Revisar código" media
✅ Tarea agregada: "Revisar código" [MEDIA]
$ node task.js list
📋 Tus tareas:
✗ [1] Entregar proyecto [ALTA] 📅 2026-02-08
✗ [2] Revisar código [MEDIA]
$ node task.js complete 1
✅ Tarea #1 completada
$ node task.js search "proyecto"
🔍 Resultados para "proyecto" (1):
✓ [1] Entregar proyecto [ALTA] 📅 2026-02-08🎨 Código de Colores
Prioridades:
- 🔴 ALTA (rojo)
- 🟡 MEDIA (amarillo)
- 🟢 BAJA (verde)
Fechas límite:
- 🔴 Vencida o urgente (< 3 días)
- 🟡 Próxima (< 7 días)
- 🔵 Normal (> 7 días)
Estado:
- ✓ Completada (verde, tachada)
- ✗ Pendiente (rojo)
🛠️ Tecnologías
- Node.js - Runtime de JavaScript
- chalk - Colores en terminal
- dotenv - Variables de entorno
- ESLint - Calidad de código
- Prettier - Formateo automático
- Jest - Testing (21 tests, cobertura 48%)
- GitHub Actions - CI/CD automatizado
👨💻 Desarrollo
# Modo desarrollo (con auto-reload)
npm run dev
# Ejecutar tests
npm test
# Tests con cobertura
npm run test:coverage
# Verificar código
npm run lint
# Formatear código
npm run format🧪 Tests
El proyecto incluye 21 tests automatizados que cubren:
- ✅ Operaciones CRUD básicas
- ✅ Prioridades y fechas límite
- ✅ Filtros y búsqueda
- ✅ Validaciones de entrada
- ✅ Persistencia de datos
npm test🔄 CI/CD
Cada push ejecuta automáticamente:
- ESLint (calidad de código)
- Prettier (formato)
- Jest (tests)
Ver el pipeline en GitHub Actions
📄 Licencia
ISC
👤 Autor
joserondan
- GitHub: @joserondan
🤝 Contribuir
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea tu feature branch (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -m 'feat: agregar nueva funcionalidad') - Push al branch (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
Hecho con ❤️ y ☕
