Plataforma para crear, gestionar y compartir currículums vitae de manera fácil y elegante.
- Diseño responsive optimizado para todos los dispositivos
- Tema elegante con tipografía profesional
- Optimizado para impresión con formato A4 perfecto
- Interfaz intuitiva y fácil de usar
- Genera enlaces únicos para compartir tu CV
- URLs personalizables con IDs cortos y memorables
- Control de expiración configurable
- Contador de visualizaciones automático
- SEO optimizado para redes sociales
- Almacenamiento local con Zustand para edición rápida
- Sincronización con MongoDB para enlaces compartidos
- Backup automático de tus datos
- Exportación en múltiples formatos
- Editor visual con vista previa en tiempo real
- Secciones modulares: Personal, Contacto, Experiencia, Educación, Habilidades, Proyectos
- Carga de imágenes para avatar y proyectos
- Datos de ejemplo para comenzar rápidamente
Antes de comenzar, asegúrate de tener instalado:
- Node.js 18.0 o superior → Descargar
- pnpm 8.0 o superior → Instalar pnpm
- MongoDB (local o Atlas) → MongoDB Community o MongoDB Atlas
- Git → Descargar Git
# Clonar desde GitHub
git clone https://github.com/tu-usuario/cv-builder.git
# Entrar al directorio
cd cv-builder
# Verificar que estás en la rama correcta
git branch# Instalar todas las dependencias del monorepo
pnpm install
# Verificar que se instalaron correctamente
pnpm list --depth=0# Copiar el archivo de ejemplo
cp .env.example .env
# Editar el archivo .env con tu editor favorito
# Windows:
notepad .env
# macOS/Linux:
nano .env
# o
code .envOpción A: MongoDB Local
# Instalar MongoDB Community Server
# Windows: Descargar desde https://www.mongodb.com/try/download/community
# macOS: brew install mongodb-community
# Ubuntu: sudo apt install mongodb
# Iniciar MongoDB
# Windows: net start MongoDB
# macOS/Linux: sudo systemctl start mongod
# Verificar que MongoDB está corriendo
# Debería conectarse sin errores
mongoshOpción B: MongoDB Atlas (Recomendado)
# 1. Crear cuenta en https://www.mongodb.com/atlas
# 2. Crear un cluster gratuito
# 3. Obtener la connection string
# 4. Agregar tu IP a la whitelist
# 5. Crear un usuario de base de datos# Editar .env con tus configuraciones:
# Para MongoDB Local:
MONGODB_URI=mongodb://localhost:27017/cv-database
# Para MongoDB Atlas:
MONGODB_URI=mongodb+srv://usuario:password@cluster.mongodb.net/cv-database?retryWrites=true&w=majority
# URL de la aplicación
NEXT_PUBLIC_URL=http://localhost:3000
# Opcional: Telegram (para notificaciones)
TELEGRAM_BOT=tu_bot_token_aqui
TELEGRAM_CHAT=tu_chat_id_aqui# Iniciar el servidor de desarrollo
pnpm web:dev
# La aplicación estará disponible en:
# http://localhost:3000# 1. Abrir navegador en http://localhost:3000
# 2. Deberías ver la página principal del CV
# 3. Ir a http://localhost:3000/admin para el panel de administración
# 4. Completar tu información personal
# 5. Ir a la pestaña "🔗 Generar Enlace" para probar la funcionalidad# Verificar que MongoDB está corriendo
# Local:
mongosh
# Atlas: Verificar connection string y whitelist de IP
# Ir a MongoDB Atlas → Network Access → Add IP Address# Instalar pnpm globalmente
npm install -g pnpm
# O usar npx
npx pnpm install# Usar un puerto diferente
PORT=3001 pnpm web:dev
# O matar el proceso que usa el puerto 3000
# Windows:
netstat -ano | findstr :3000
taskkill /PID <PID> /F
# macOS/Linux:
lsof -ti:3000 | xargs kill -9# Limpiar cache y reinstalar
rm -rf node_modules
rm pnpm-lock.yaml
pnpm install
# O limpiar cache de Next.js
rm -rf .next
pnpm web:dev# Desarrollo
pnpm web:dev # Servidor de desarrollo
pnpm web:build # Build de producción
pnpm web:start # Servidor de producción
# Calidad de código
pnpm lint # Verificar código con ESLint
pnpm lint:fix # Arreglar errores automáticamente
pnpm type # Verificar tipos TypeScript
pnpm format # Formatear con Prettier
# Monorepo
pnpm build # Build de todos los packages
pnpm clean # Limpiar builds y cache
pnpm dev # Desarrollo de todos los packagesUna vez que el servidor esté corriendo:
# Página principal (CV público)
http://localhost:3000
# Panel de administración
http://localhost:3000/admin
# Página de login (si implementas autenticación)
http://localhost:3000/login
# Ejemplo de CV compartido
http://localhost:3000/share/abc123def456# MongoDB
MONGODB_URI=mongodb://localhost:27017/cv-database
# o para MongoDB Atlas:
# MONGODB_URI=mongodb+srv://usuario:password@cluster.mongodb.net/cv-database
# Next.js
NEXT_PUBLIC_URL=http://localhost:3000
# Opcional: Telegram Bot (para notificaciones)
TELEGRAM_BOT=tu_bot_token
TELEGRAM_CHAT=tu_chat_id# Ir al panel de administración
http://localhost:3000/admin
# Completar las secciones:
# - Información Personal
# - Contacto
# - Acerca de Mí
# - Experiencia Laboral
# - Educación
# - Habilidades
# - Proyectos# En el panel de admin, ir a "🔗 Generar Enlace"
# Configurar título, descripción y expiración
# Obtener enlace único: https://tu-dominio.com/share/abc123# El enlace se puede compartir en:
# - LinkedIn (sección de contacto)
# - Email (firma profesional)
# - Redes sociales (bio)
# - Aplicaciones de trabajo
# - Tarjetas de presentación (QR)cv-builder/
├── apps/
│ └── web/ # Aplicación Next.js principal
├── packages/
│ ├── config/ # Configuraciones compartidas
│ ├── lib/ # Utilidades compartidas
│ ├── mongodb/ # Modelos y conexión a DB
│ ├── trpc/ # API con tRPC
│ ├── types/ # Tipos TypeScript
│ └── tsconfig/ # Configuraciones TS
- Next.js 15 - Framework React con SSR
- TypeScript - Tipado estático
- Tailwind CSS - Estilos utilitarios
- Zustand - Gestión de estado
- React Hook Form - Manejo de formularios
- tRPC - API type-safe
- MongoDB - Base de datos NoSQL
- Mongoose - ODM para MongoDB
- Zod - Validación de esquemas
- Turbo - Monorepo y build system
- ESLint - Linting de código
- Prettier - Formateo de código
- Husky - Git hooks
apps/web/
├── components/
│ ├── atoms/ # Componentes básicos
│ ├── molecules/ # Componentes compuestos
│ └── organism/ # Componentes complejos
├── pages/
│ ├── admin.tsx # Panel de administración
│ ├── share/[shareId].tsx # Visualización de CVs compartidos
│ └── index.tsx # Página principal
├── store/ # Estado global con Zustand
├── types/ # Tipos específicos de la app
└── utils/ # Utilidades y helpers
packages/
├── mongodb/
│ ├── models/ # Modelos de Mongoose
│ └── dbConnect.ts # Conexión a MongoDB
├── trpc/
│ ├── server/ # Configuración del servidor
│ └── react/ # Cliente React
└── types/ # Tipos compartidos
# Desarrollo
pnpm web:dev # Iniciar app en desarrollo
pnpm web:build # Build de producción
pnpm web:start # Iniciar app en producción
# Calidad de código
pnpm lint # Ejecutar ESLint
pnpm type # Verificar tipos TypeScript
pnpm format # Formatear código con Prettier
# Base de datos
pnpm db:seed # Poblar DB con datos de ejemplo
pnpm db:reset # Resetear base de datos# Conectar con Vercel
vercel
# Configurar variables de entorno en Vercel dashboard
# Desplegar
vercel --prod# Build de la imagen
docker build -t cv-builder .
# Ejecutar contenedor
docker run -p 3000:3000 cv-builderMONGODB_URI=mongodb+srv://...
NEXT_PUBLIC_URL=https://tu-dominio.com
NODE_ENV=production- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -m 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
- Seguir las convenciones de código existentes
- Agregar tests para nuevas funcionalidades
- Actualizar documentación cuando sea necesario
- Usar commits descriptivos
- Temas personalizables para CVs
- Exportación a PDF nativa
- Múltiples idiomas de interfaz
- Dashboard de analytics detallado
- API pública para integraciones
- Colaboración en tiempo real
- Templates prediseñados
- Integración con LinkedIn
- Sistema de comentarios
- Versioning de CVs
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
- Next.js por el excelente framework
- Vercel por el hosting gratuito
- MongoDB por la base de datos
- Tailwind CSS por los estilos
- tRPC por la API type-safe
¿Te gusta el proyecto? ¡Dale una ⭐ en GitHub!