# 🚀 Comandos para Crear Nuevo Proyecto en Local - Bewpro

## 📋 Resumen Ejecutivo

Para crear un nuevo proyecto en local con el sistema **bewpro**, tienes dos opciones principales:

1. **Modo Interactivo** (más simple, paso a paso)
2. **Modo JSON** (más rápido, configuración en archivo)

---

## 🎯 Opción 1: Modo Interactivo (Recomendado para principiantes)

### Comando Principal

```bash
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system
./scripts/create-complete-project.sh
```

### Proceso

El script te preguntará:
1. **Nombre del proyecto** (ej: `mi-proyecto`)
2. **URL del repositorio** (por defecto: `https://github.com/LACOMPANIADIGITAL/mi-proyecto.git`)
3. **Nombre de la base de datos** (por defecto: `bewpro-mi-proyecto`)
4. **¿Estás en cPanel?** (para local: `n`)
5. **Identidad del proyecto**:
   - Nombre del sitio
   - URL del sitio
   - Email de contacto
   - Descripción SEO
6. **¿Tienes assets listos?** (logos, favicons, etc.)

### Ejemplo de Ejecución

```bash
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system
./scripts/create-complete-project.sh

# El script te guiará paso a paso
```

---

## 🎯 Opción 2: Modo JSON (Recomendado para avanzados)

### Paso 1: Crear archivo JSON de configuración

Crea un archivo JSON con la configuración del proyecto:

```json
{
  "project": {
    "name": "mi-proyecto",
    "repository_url": "https://github.com/LACOMPANIADIGITAL/mi-proyecto.git",
    "database": {
      "name": "bewpro-mi-proyecto",
      "is_cpanel": false
    }
  },
  "identity": {
    "site_name": "Mi Proyecto",
    "site_url": "www.miproyecto.com",
    "contact_email": "contacto@miproyecto.com",
    "seo_description": "Descripción SEO del sitio",
    "author": "Nombre del Autor"
  },
  "assets": {
    "has_assets": true,
    "assets_path": "/ruta/absoluta/a/tus/assets",
    "update_assets": true,
    "create_backup": true,
    "auto_detect": false
  },
  "system": {
    "demo": "demo-construction",
    "modules": {
      "blog": true,
      "services": true,
      "team": false
    }
  },
  "options": {
    "skip_push": false,
    "skip_verification": false,
    "verbose": true
  }
}
```

### Paso 2: Ejecutar con JSON

```bash
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system
./scripts/create-complete-project.sh mi-proyecto.json
```

---

## 📦 Requisitos Previos

### 1. Instalar dependencias del sistema

```bash
# macOS (con Homebrew)
brew install jq

# Linux (Ubuntu/Debian)
sudo apt-get install jq

# Verificar instalación
jq --version
```

### 2. Verificar que estás en el directorio correcto

```bash
# Debe estar en cd-system
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system

# Verificar estructura
ls -la scripts/create-complete-project.sh
```

### 3. Configurar base de datos MySQL

Asegúrate de que MySQL esté corriendo y puedas crear bases de datos:

```bash
# Verificar MySQL
mysql -u root -p

# Crear base de datos manualmente (opcional)
CREATE DATABASE `bewpro-mi-proyecto` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```

---

## 🔄 Proceso Completo del Script

El script `create-complete-project.sh` realiza automáticamente:

1. ✅ **Crea directorio del proyecto** en `/Applications/XAMPP/xamppfiles/htdocs/mi-proyecto`
2. ✅ **Inicializa repositorio Git** y clona desde `cd-system` (usa local si existe)
3. ✅ **Configura `.gitattributes`** con protecciones de archivos
4. ✅ **Instala dependencias** con Composer
5. ✅ **Configura `.env`** con credenciales de base de datos
6. ✅ **Ejecuta migraciones y seeders** de Laravel
7. ✅ **Personaliza `config/site.php`** con identidad del proyecto
8. ✅ **Configura `config/cd-system.php`** (demo y módulos)
9. ✅ **Copia y actualiza assets** (si se proporcionan)
10. ✅ **Verifica estado final** del proyecto

---

## 📁 Estructura de Assets (Opcional)

Si tienes assets listos, estructura recomendada:

```
/ruta/a/tus/assets/
├── logo.png                    # Requerido
├── logo-2.png                  # Requerido
├── logo-alternative.png        # Requerido
├── favicon.ico                 # Requerido
├── favicon-48x48.png           # Requerido
├── favicon-96x96.png           # Requerido
├── favicon.svg                 # Requerido
├── apple-touch-icon.png        # Requerido
├── web-app-manifest-192x192.png # Requerido
├── web-app-manifest-512x512.png # Requerido
├── site.webmanifest            # Requerido
├── skin-*.css                  # Opcional (skin personalizado)
├── og-image.png                # Opcional
└── twitter-image.png           # Opcional
```

---

## 🚀 Comandos Post-Creación

Después de crear el proyecto:

### 1. Navegar al proyecto

```bash
cd /Applications/XAMPP/xamppfiles/htdocs/mi-proyecto
```

### 2. Iniciar servidor de desarrollo

```bash
php artisan serve
```

### 3. Acceder al sitio

```
http://127.0.0.1:8000
```

### 4. Credenciales de acceso por defecto

```
Email: admin@mi-proyecto.com
Password: password
```

### 5. Actualizar assets (si no se hicieron durante la creación)

```bash
php artisan project:update-assets public/cd-project/assets --backup --project="mi-proyecto"
```

---

## 🛠️ Comandos Útiles Adicionales

### Actualizar módulos

```bash
# Actualizar todos los módulos
php artisan modules:refresh --clean

# Actualizar módulos específicos
php artisan modules:refresh --clean --modules=blog --modules=services
```

### Configurar identidad del proyecto

```bash
php artisan project:customize-identity \
  --name="Mi Empresa" \
  --url="www.miempresa.com" \
  --email="contacto@miempresa.com" \
  --description="Descripción SEO" \
  --author="Nombre del Autor"
```

### Configurar demo y módulos

```bash
php artisan project:configure-modules \
  --demo=demo-construction \
  --modules=blog,services,team
```

### Limpiar caché

```bash
php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear
```

---

## 📚 Scripts Disponibles

### Scripts principales

| Script | Ubicación | Descripción |
|--------|-----------|-------------|
| `create-complete-project.sh` | `cd-system/scripts/` | Crea proyecto completo con identidad y assets |
| `create-new-project.sh` | `cd-system/scripts/` | Crea estructura base del proyecto |
| `setup_cd_project.sh` | `proyecto/scripts/` | Setup inicial del proyecto (composer, .env, migraciones) |

### Scripts helper

| Script | Ubicación | Descripción |
|--------|-----------|-------------|
| `update-project-assets.sh` | `proyecto/scripts/` | Actualizar assets después de crear proyecto |
| `verify-setup.sh` | `cd-system/scripts/` | Verificar que todo esté listo para crear proyectos |

---

## ⚠️ Notas Importantes

### 1. Directorio Local vs GitHub

El script **detecta automáticamente** si existe `cd-system` en el directorio padre:
- ✅ **Si existe local**: Usa el directorio local (más rápido, sin internet)
- ✅ **Si no existe**: Descarga desde GitHub automáticamente

### 2. Base de Datos

Para desarrollo local:
- **No es cPanel**: `"is_cpanel": false` en JSON
- **Usuario**: Generalmente `root`
- **Password**: Tu password de MySQL local
- **Host**: `localhost` o `127.0.0.1`

### 3. Assets

- **Rutas absolutas**: Usa rutas absolutas en el JSON para assets externos
- **Rutas relativas**: Si los assets están en el proyecto, usa `public/cd-project/assets`
- **Auto-detección**: El script puede detectar assets automáticamente si están en `public/cd-project/assets/`

---

## 🆘 Solución de Problemas

### Error: "jq no está instalado"

```bash
# macOS
brew install jq

# Linux
sudo apt-get install jq
```

### Error: "Este script debe ejecutarse desde el repositorio cd-system"

```bash
# Asegúrate de estar en el directorio correcto
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system
pwd  # Debe mostrar: /Applications/XAMPP/xamppfiles/htdocs/cd-system
```

### Error: "No se puede conectar a la base de datos"

```bash
# Verificar que MySQL esté corriendo
mysql -u root -p

# Verificar credenciales en .env
cd /Applications/XAMPP/xamppfiles/htdocs/mi-proyecto
cat .env | grep DB_
```

### Assets no se actualizan

```bash
# Verificar que los archivos existan
ls -la public/cd-project/assets/

# Ejecutar manualmente
php artisan project:update-assets public/cd-project/assets --backup --project="mi-proyecto"
```

---

## 📖 Documentación Relacionada

- **[README Principal](./README.md)** - Documentación completa del sistema
- **[Comandos del Sistema](./COMANDOS-SISTEMA.md)** - Todos los comandos artisan disponibles
- **[Actualizar Identidad del Proyecto](./core/ACTUALIZAR-IDENTIDAD-PROYECTO.md)** - Guía para actualizar identidad visual
- **[Uso de Directorio Local](./uso-directorio-local.md)** - Detalles sobre uso de cd-system local

---

## 🎯 Flujo Rápido (Resumen)

```bash
# 1. Ir a cd-system
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system

# 2. Crear proyecto (modo interactivo)
./scripts/create-complete-project.sh

# O con JSON
./scripts/create-complete-project.sh mi-proyecto.json

# 3. Navegar al proyecto
cd ../mi-proyecto

# 4. Iniciar servidor
php artisan serve

# 5. Acceder
# http://127.0.0.1:8000
```

---

**Última actualización**: 2025-01-XX  
**Versión del sistema**: CD-System Base

