103 lines
2.3 KiB
Markdown
103 lines
2.3 KiB
Markdown
|
|
# EMERGES TES - Backend API
|
||
|
|
|
||
|
|
Backend para gestión de contenido de EMERGES TES.
|
||
|
|
|
||
|
|
## 🚀 Inicio Rápido
|
||
|
|
|
||
|
|
### 1. Instalar dependencias
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd backend
|
||
|
|
npm install
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Configurar variables de entorno
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cp .env.example .env
|
||
|
|
# Editar .env con tus credenciales de PostgreSQL
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Crear base de datos
|
||
|
|
|
||
|
|
```bash
|
||
|
|
npm run db:create
|
||
|
|
```
|
||
|
|
|
||
|
|
Este comando:
|
||
|
|
- Crea la base de datos `emerges_tes` si no existe
|
||
|
|
- Ejecuta todas las migraciones SQL
|
||
|
|
- Crea el esquema completo
|
||
|
|
|
||
|
|
### 4. Migrar contenido inicial
|
||
|
|
|
||
|
|
```bash
|
||
|
|
npm run migrate
|
||
|
|
```
|
||
|
|
|
||
|
|
Este comando migra el contenido de `src/data/*.ts` a PostgreSQL.
|
||
|
|
|
||
|
|
### 5. Iniciar servidor
|
||
|
|
|
||
|
|
```bash
|
||
|
|
npm run dev
|
||
|
|
```
|
||
|
|
|
||
|
|
El servidor estará disponible en `http://localhost:3000`
|
||
|
|
|
||
|
|
## 📁 Estructura
|
||
|
|
|
||
|
|
```
|
||
|
|
backend/
|
||
|
|
├── src/
|
||
|
|
│ ├── api/ # Endpoints de la API (FASE 2+)
|
||
|
|
│ ├── db/ # Utilidades de base de datos
|
||
|
|
│ ├── migrations/ # Migraciones de datos
|
||
|
|
│ └── utils/ # Utilidades
|
||
|
|
├── config/
|
||
|
|
│ └── database.js # Configuración de PostgreSQL
|
||
|
|
├── scripts/
|
||
|
|
│ ├── db-create.js # Crear BD y ejecutar migraciones
|
||
|
|
│ └── migrate-content.js # Migrar contenido TypeScript → PostgreSQL
|
||
|
|
└── package.json
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🔧 Scripts Disponibles
|
||
|
|
|
||
|
|
- `npm run dev` - Iniciar servidor en modo desarrollo
|
||
|
|
- `npm start` - Iniciar servidor en producción
|
||
|
|
- `npm run db:create` - Crear base de datos y ejecutar migraciones
|
||
|
|
- `npm run migrate` - Migrar contenido desde TypeScript
|
||
|
|
|
||
|
|
## 📊 Estado de Implementación
|
||
|
|
|
||
|
|
### ✅ FASE 1: Infraestructura Base (Actual)
|
||
|
|
- ✅ Estructura de directorios
|
||
|
|
- ✅ Scripts SQL de creación de esquema
|
||
|
|
- ✅ Configuración de PostgreSQL
|
||
|
|
- ✅ Scripts de migración básicos
|
||
|
|
- ✅ Servidor Express básico
|
||
|
|
|
||
|
|
### ⏳ FASE 2: API REST (Próxima)
|
||
|
|
- Endpoints GET para lectura
|
||
|
|
- Sincronización de contenido
|
||
|
|
- Cache y optimización
|
||
|
|
|
||
|
|
### ⏳ FASE 3: Panel Admin (Futuro)
|
||
|
|
- Autenticación
|
||
|
|
- Editores de contenido
|
||
|
|
- Validación clínica
|
||
|
|
|
||
|
|
## 🔐 Seguridad
|
||
|
|
|
||
|
|
- Las credenciales de BD deben estar en `.env` (no commitear)
|
||
|
|
- JWT para autenticación (FASE 3)
|
||
|
|
- Validación de entrada en todos los endpoints
|
||
|
|
|
||
|
|
## 📝 Notas
|
||
|
|
|
||
|
|
- Este backend es independiente de la app React
|
||
|
|
- La app React solo LEE contenido (pull-only)
|
||
|
|
- El panel admin (futuro) será quien ESCRIBA contenido
|
||
|
|
|