template-saas/orchestration/_archive/planes/PLAN-FEATURES-ADICIONALES-2026-01-10.md
Adrian Flores Cortes 1c847fbe04
Some checks are pending
CI / Backend CI (push) Waiting to run
CI / Frontend CI (push) Waiting to run
CI / Security Scan (push) Waiting to run
CI / CI Summary (push) Blocked by required conditions
[ESTANDAR-ORCHESTRATION] refactor: Consolidate to standard structure
- Rename _archivo to _archive (standard convention)
- Move analisis/, planes/ to _archive/
- Archive extra root files
- Update _MAP.md with standardized structure

Standard: SIMCO-ESTANDAR-ORCHESTRATION v1.0.0
Level: PROVIDER (L1A)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 14:38:23 -06:00

209 lines
6.4 KiB
Markdown

# Plan de Features Adicionales
**Proyecto:** template-saas
**Fecha:** 2026-01-10
**SP Total:** 18 (5 + 8 + 5)
---
## 1. Resumen Ejecutivo
| Feature | ID | SP | Prioridad | Dependencias |
|---------|-----|-----|-----------|--------------|
| OAuth 2.0 | SAAS-015 | 5 | P1 | DDL existe |
| Dashboard Analytics | SAAS-016 | 8 | P2 | SAAS-015 opcional |
| Reportes Exportables | SAAS-017 | 5 | P2 | SAAS-016 opcional |
---
## 2. SAAS-015: OAuth 2.0 Endpoints
### 2.1 Estado Actual
- [x] DDL: Tabla `auth.oauth_connections` existe
- [x] DDL: Enum `auth.oauth_provider` existe
- [x] RLS: Policies configuradas
- [ ] Backend: Entity, Service, Controller
- [ ] Backend: Passport Strategies
- [ ] Frontend: Botones y UI
- [ ] Tests
### 2.2 Tareas Backend
| # | Tarea | Archivos |
|---|-------|----------|
| 1 | Instalar dependencias | package.json |
| 2 | Crear OAuthConnection entity | entities/oauth-connection.entity.ts |
| 3 | Crear OAuth Service | services/oauth.service.ts |
| 4 | Crear Google Strategy | strategies/google.strategy.ts |
| 5 | Crear Microsoft Strategy | strategies/microsoft.strategy.ts |
| 6 | Crear GitHub Strategy | strategies/github.strategy.ts |
| 7 | Crear OAuth Controller | oauth.controller.ts |
| 8 | Actualizar Auth Module | auth.module.ts |
| 9 | Actualizar env config | config/env.config.ts |
| 10 | Tests unitarios | __tests__/oauth.service.spec.ts |
### 2.3 Endpoints a Implementar
| Metodo | Endpoint | Descripcion |
|--------|----------|-------------|
| GET | /auth/oauth/:provider | Iniciar OAuth flow |
| GET | /auth/oauth/:provider/callback | Callback del proveedor |
| POST | /auth/oauth/link/:provider | Vincular cuenta existente |
| DELETE | /auth/oauth/:provider | Desvincular proveedor |
| GET | /auth/oauth/connections | Listar conexiones |
### 2.4 Tareas Frontend
| # | Tarea | Archivos |
|---|-------|----------|
| 1 | Crear OAuthButtons component | components/auth/OAuthButtons.tsx |
| 2 | Actualizar LoginPage | pages/auth/LoginPage.tsx |
| 3 | Actualizar RegisterPage | pages/auth/RegisterPage.tsx |
| 4 | Crear OAuthCallback page | pages/auth/OAuthCallback.tsx |
| 5 | Crear OAuthConnections component | components/settings/OAuthConnections.tsx |
| 6 | Actualizar Settings page | pages/settings/SecuritySettings.tsx |
| 7 | Crear oauth.api.ts | services/oauth.api.ts |
| 8 | Crear useOAuth hook | hooks/useOAuth.ts |
### 2.5 Dependencias NPM
**Backend:**
```bash
npm install passport-google-oauth20 passport-microsoft passport-github2
npm install -D @types/passport-google-oauth20 @types/passport-github2
```
**Frontend:** Ninguna adicional requerida
---
## 3. SAAS-016: Dashboard Analytics
### 3.1 Funcionalidades
- Metricas de usuarios (activos, nuevos, churn)
- Metricas de billing (MRR, revenue, subscriptions)
- Metricas de uso (API calls, storage, AI usage)
- Graficos temporales (7d, 30d, 90d, 1y)
- KPIs por tenant y globales (superadmin)
### 3.2 Tareas Backend
| # | Tarea | Archivos |
|---|-------|----------|
| 1 | Crear Analytics Module | modules/analytics/analytics.module.ts |
| 2 | Crear Analytics Service | modules/analytics/analytics.service.ts |
| 3 | Crear Analytics Controller | modules/analytics/analytics.controller.ts |
| 4 | Crear DTOs | modules/analytics/dto/*.ts |
| 5 | Tests unitarios | modules/analytics/__tests__/*.ts |
### 3.3 Endpoints
| Metodo | Endpoint | Descripcion |
|--------|----------|-------------|
| GET | /analytics/users | Metricas de usuarios |
| GET | /analytics/billing | Metricas de billing |
| GET | /analytics/usage | Metricas de uso |
| GET | /analytics/summary | Resumen KPIs |
| GET | /analytics/trends | Tendencias temporales |
### 3.4 Tareas Frontend
| # | Tarea | Archivos |
|---|-------|----------|
| 1 | Instalar chart library | package.json (recharts) |
| 2 | Crear AnalyticsDashboard | pages/admin/AnalyticsDashboard.tsx |
| 3 | Crear MetricCard component | components/analytics/MetricCard.tsx |
| 4 | Crear TrendChart component | components/analytics/TrendChart.tsx |
| 5 | Crear useAnalytics hook | hooks/useAnalytics.ts |
| 6 | Crear analytics.api.ts | services/analytics.api.ts |
---
## 4. SAAS-017: Reportes Exportables
### 4.1 Funcionalidades
- Exportar a PDF (reportes formateados)
- Exportar a Excel (datos tabulares)
- Exportar a CSV (datos crudos)
- Templates de reportes predefinidos
- Reportes programados (futuro)
### 4.2 Tareas Backend
| # | Tarea | Archivos |
|---|-------|----------|
| 1 | Instalar dependencias | package.json (pdfkit, exceljs) |
| 2 | Crear Reports Module | modules/reports/reports.module.ts |
| 3 | Crear PDF Service | modules/reports/pdf.service.ts |
| 4 | Crear Excel Service | modules/reports/excel.service.ts |
| 5 | Crear Reports Controller | modules/reports/reports.controller.ts |
| 6 | Tests unitarios | modules/reports/__tests__/*.ts |
### 4.3 Endpoints
| Metodo | Endpoint | Descripcion |
|--------|----------|-------------|
| GET | /reports/users/pdf | Exportar usuarios a PDF |
| GET | /reports/users/excel | Exportar usuarios a Excel |
| GET | /reports/billing/pdf | Exportar billing a PDF |
| GET | /reports/billing/excel | Exportar billing a Excel |
| GET | /reports/audit/csv | Exportar audit logs a CSV |
### 4.4 Tareas Frontend
| # | Tarea | Archivos |
|---|-------|----------|
| 1 | Crear ExportButton component | components/common/ExportButton.tsx |
| 2 | Crear ExportModal component | components/common/ExportModal.tsx |
| 3 | Actualizar tablas con export | Multiples componentes |
| 4 | Crear reports.api.ts | services/reports.api.ts |
| 5 | Crear useExport hook | hooks/useExport.ts |
### 4.5 Dependencias NPM
**Backend:**
```bash
npm install pdfkit exceljs
npm install -D @types/pdfkit
```
---
## 5. Orden de Ejecucion
```
FASE 1: SAAS-015 OAuth 2.0
├── Backend (entity, service, strategies, controller)
├── Frontend (buttons, callback, settings)
└── Tests
FASE 2: SAAS-016 Dashboard Analytics
├── Backend (module, service, controller)
├── Frontend (dashboard, charts, metrics)
└── Tests
FASE 3: SAAS-017 Reportes Exportables
├── Backend (module, pdf, excel services)
├── Frontend (export buttons, modals)
└── Tests
```
---
## 6. Estimacion de Tiempo
| Feature | Backend | Frontend | Tests | Total |
|---------|---------|----------|-------|-------|
| OAuth 2.0 | 3h | 2h | 1h | 6h |
| Analytics | 3h | 3h | 1h | 7h |
| Reportes | 3h | 2h | 1h | 6h |
| **Total** | **9h** | **7h** | **3h** | **19h** |
---
**Creado:** 2026-01-10
**Autor:** Claude Code