Skip to content

capacitadero/cvly

Repository files navigation

🎓 CVly

Crea tu currículum vitae en formato PDF de forma accesible

React TypeScript Tailwind Firebase

Este es un proyecto de código abierto, construido con ❤️ para nuestros estudiantes de Capacitadero

🚀 Demo📖 Documentación🤝 Contribuir


✨ Características

  • 100% Accesible: Optimizado para lectores de pantalla (NVDA, JAWS, VoiceOver)
  • ⌨️ Navegación por teclado: Completamente funcional sin mouse
  • 🎨 Estilo profesional: Formato Harvard, elegante y minimalista
  • 📄 Exportación PDF: Descarga tu CV en formato profesional
  • 🔄 Vista previa en tiempo real: Ve los cambios mientras escribes
  • 🌐 Interfaz en español: Diseñado para hispanohablantes
  • 📱 Responsive: Funciona en desktop, tablet y móvil
  • 📊 Contador de descargas: Estadísticas en tiempo real con Firebase
  • 📝 Formulario de retroalimentación: Recopila opiniones de usuarios (opcional)

🛠️ Tecnologías

Tecnología Uso
⚛️ React 18+ Framework principal
📘 TypeScript Tipado estático
🎨 Tailwind CSS v4 Estilos y diseño
📄 jsPDF Generación de PDFs
🔥 Firebase Hosting Despliegue web
🗄️ Cloud Firestore Base de datos (contador y retroalimentación)
⚡ Cloud Functions Backend serverless
🎯 Lucide React Iconos

🚀 Instalación Local

Requisitos Previos

  • Node.js 20+ y npm
  • Firebase CLI (npm install -g firebase-tools)

Pasos de Instalación

# Clonar el repositorio
git clone https://github.com/capacitadero/cvly.git

# Entrar al directorio
cd cvly

# Instalar dependencias del frontend
npm install

# Instalar dependencias de Cloud Functions
cd functions && npm install && cd ..

# Configurar variables de entorno
cp .env.example .env.local
# Editar .env.local con tus credenciales de Firebase

# Iniciar servidor de desarrollo
npm run dev

La aplicación estará disponible en http://localhost:5173

Configuración de Firebase

  1. Crea un proyecto en Firebase Console
  2. Habilita Firestore Database
  3. Habilita Cloud Functions (requiere plan Blaze)
  4. Registra una Web App y copia las credenciales a .env.local
  5. Despliega las funciones: firebase deploy --only functions

📖 Cómo Usar

  1. Completa el formulario con tu información personal y profesional
  2. Visualiza en tiempo real cómo se ve tu CV en la columna derecha
  3. Descarga tu CV haciendo clic en "Descargar CV en PDF"
  4. Comparte tu opinión (opcional) en el formulario de retroalimentación

Secciones Disponibles:

  • 📝 Información Personal
  • 💼 Experiencia Laboral (añade cuantas necesites)
  • 🎓 Educación (añade cuantas necesites)
  • ➕ Secciones Personalizadas (crea las que quieras)

🚀 Despliegue

# Construir y desplegar todo
npm run build && firebase deploy

# Solo hosting
npm run build && firebase deploy --only hosting

# Solo funciones
firebase deploy --only functions

# Solo reglas de Firestore
firebase deploy --only firestore:rules

📁 Estructura del Proyecto

cvly/
├── src/
│   ├── config/
│   │   └── firebase.ts       # Configuración Firebase
│   ├── hooks/
│   │   └── useDownloadCounter.ts  # Hook del contador
│   ├── pages/
│   │   ├── IndexPage.tsx     # Página principal
│   │   ├── CreatePage.tsx    # Creador de CV
│   │   └── DownloadSuccessPage.tsx  # Retroalimentación post-descarga
│   └── main.tsx
├── functions/
│   └── src/
│       └── index.ts          # Cloud Functions
├── firebase.json             # Configuración Firebase
├── firestore.rules           # Reglas de seguridad
└── .env.local                # Variables de entorno (no commitear)

♿ Accesibilidad

CVly está construido siguiendo las pautas WCAG 2.1 nivel AA:

  • ✅ HTML semántico en todo el sitio
  • ✅ Etiquetas ARIA apropiadas
  • ✅ Anuncios de lectores de pantalla para contenido dinámico
  • ✅ Orden lógico de tabulación
  • ✅ Contraste de colores accesible
  • ✅ Textos alternativos descriptivos

Lectores de pantalla compatibles:

  • 🖥️ NVDA (Windows)
  • 🖥️ JAWS (Windows)
  • 🍎 VoiceOver (macOS/iOS)

🤝 Contribuir

¡Las contribuciones son bienvenidas! Si quieres mejorar CVly:

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add: nueva característica')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

Nota importante: Toda contribución debe mantener los estándares de accesibilidad del proyecto.


📝 Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.


🙏 Créditos

Este proyecto fue construido con el apoyo de Claude Code

Hecho con ❤️ para la comunidad de Capacitadero

⭐ Si te gusta este proyecto, ¡dale una estrella en GitHub!

About

Crea tu currículum vitae en formato PDF de forma accesible.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages