# 🌲 Guía de Configuración - Sistema de Inventario Forestal Guatemala

## 📋 Requisitos Previos

- **PHP 7.4+** con extensiones: `pdo`, `pdo_mysql`, `json`, `mbstring`
- **MySQL 5.7+** o **MariaDB 10.3+**
- **Node.js 16+** y **npm**
- **Servidor web** (Apache/Nginx) con mod_rewrite habilitado

## 🚀 Configuración Paso a Paso

### 1. Configurar Base de Datos

```bash
# 1. Crear la base de datos
mysql -u root -p
CREATE DATABASE sif_guatemala CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;

# 2. Importar el esquema
mysql -u root -p sif_guatemala < database/schema.sql

# 3. Crear usuario demo
php create_demo_user.php
```

### 2. Verificar Configuración PHP

```bash
# Ejecutar diagnóstico
php test_setup.php
```

### 3. Configurar Servidor Web

#### Opción A: Apache (Recomendado)
```apache
# Asegurar que mod_rewrite esté habilitado
sudo a2enmod rewrite
sudo systemctl restart apache2

# El archivo .htaccess ya está configurado
```

#### Opción B: Servidor PHP Integrado (Solo desarrollo)
```bash
# Desde la raíz del proyecto
php -S localhost:8000

# La API estará en: http://localhost:8000/api/
```

### 4. Configurar Frontend React

```bash
# Instalar dependencias
npm install

# Iniciar servidor de desarrollo
npm start

# El frontend estará en: http://localhost:3000
```

### 5. Configurar Variables de Entorno (Opcional)

Crear archivo `.env` en la raíz del proyecto React:

```env
REACT_APP_API_URL=http://localhost:8000/api
```

## 🧪 Probar la Configuración

### 1. Probar API Backend
Visita: `http://localhost:8000/api/` o `http://localhost/api/`

Deberías ver:
```json
{
  "success": true,
  "message": "SIF-GT API v1.0",
  "version": "1.0.0"
}
```

### 2. Probar Autenticación
Visita: `http://localhost:8000/test_api_auth.php`

### 3. Probar Frontend
Visita: `http://localhost:3000/login`

**Credenciales de prueba:**
- Email: `admin@demo.com`
- Contraseña: `demo123`

## 🔧 Solución de Problemas Comunes

### Error 404 en /api/
```bash
# Verificar que mod_rewrite esté habilitado
apache2ctl -M | grep rewrite

# Verificar permisos del .htaccess
chmod 644 .htaccess

# Probar API directamente
php api/index.php
```

### Error de Conexión a Base de Datos
```bash
# Verificar configuración
php -r "
require 'api/config/database.php';
try {
    \$db = new Database();
    \$conn = \$db->getConnection();
    echo 'Conexión exitosa\n';
} catch (Exception \$e) {
    echo 'Error: ' . \$e->getMessage() . '\n';
}
"
```

### Error CORS en Frontend
Agregar en `api/index.php`:
```php
header('Access-Control-Allow-Origin: http://localhost:3000');
```

### Puerto 3000 ocupado
```bash
# Usar puerto diferente
PORT=3001 npm start
```

## 📱 Usar la Aplicación de Campo

1. **Login** con credenciales demo
2. **Navegar** a `/field` o usar el menú "Campo"
3. **Seleccionar** proyecto y rodal
4. **Capturar** datos de árboles con GPS

## 🗂️ Estructura de URLs

### Backend API
- `GET /api/` - Información de la API
- `POST /api/auth/login` - Iniciar sesión
- `GET /api/projects` - Lista de proyectos
- `GET /api/species` - Lista de especies
- `POST /api/field-data/sync` - Sincronizar datos

### Frontend React
- `/login` - Página de login
- `/` - Dashboard principal
- `/projects` - Gestión de proyectos
- `/field` - Aplicación de campo
- `/users` - Gestión de usuarios (Admin)

## 🔐 Roles y Permisos

- **Administrador**: Acceso completo
- **Regente**: Gestión de proyectos y reportes
- **Técnico de Campo**: Solo aplicación de campo

## 📊 Datos Demo Incluidos

- **Usuario**: Administrador demo
- **Especies**: 15 especies forestales de Guatemala
- **Configuración**: Parámetros del sistema

## 🆘 Obtener Ayuda

Si tienes problemas:

1. **Ejecuta diagnóstico**: `php test_setup.php`
2. **Prueba API**: Visita `/test_api_auth.php`
3. **Revisa logs**: Verifica logs de Apache/PHP
4. **Verifica permisos**: Archivos y carpetas

## 🚀 Despliegue en Producción

Para producción, actualizar:

1. **Configuración DB** en `api/config/config.php`
2. **JWT Secret** más seguro
3. **CORS Origin** específico
4. **HTTPS** habilitado
5. **Logs** configurados

---

¡El sistema está listo para usar! 🎉