se agrego archivo Proyecto SAP React Next.js

This commit is contained in:
George committed 2026-05-22 09:53:35 -05:00
1 parent b2b9ed6cca
commit b2794978b0
2 files changed
+613 -1

No files matched your search

+26 -1
View File
@@ -46,6 +46,31 @@ git add .
git commit -m "primer commit"
```
## 6.1 Commit de un proyecto dentro de una Solución
```bash
git add ProyectoA/
git status
git commit -m "mensaje commit para los archivos modificados del proyecto"
```
## 6.2 Commit de un archivo específico dentro de un proyecto
```bash
git add ProyectoA/FacturaNegociable.cs
git status
git commit -m "mensaje commit para el archivo especifico del proyecto"
```
## 6. 3 Git reset , quita todos los archivos del staging area que coloco git add, reversa el git add antes del git commit
```bash
git reset
```
## 6. 4 Git reset , si ya hice commit, pero aún no hice push
```bash
git reset --soft HEAD~1
git reset
```
## 7. Crear repositorio en Gitea
- Nombre: descarga_adjuntos_correos_cpe
- Sin README
@@ -61,7 +86,7 @@ http://100.68.242.27:30000/george/descarga_adjuntos_correos_cpe.git
git remote add origin http://100.68.242.27:30000/george/descarga_adjuntos_correos_cpe.git
```
## 10. Subir código
## 10. Subir código por primera vez
```bash
git branch -M main
git push -u origin main
@@ -0,0 +1,587 @@
# Proyecto ERP Web Empresarial Integrado con SAP Business One Service Layer
# Objetivo General
Desarrollar una aplicación web empresarial para mantenimiento de datos maestros de Socios de Negocio similar al formulario estándar de SAP Business One.
La solución utilizará:
- Frontend:
- React.js
- Next.js
- TypeScript
- Backend:
- Python
- FastAPI
- Integración:
- SAP Business One Service Layer
---
# Filosofía de Arquitectura
La solución debe:
- Ser escalable
- Ser desacoplada
- Tener arquitectura por capas
- Tener código mantenible
- Tener funciones pequeñas y reutilizables
- Aplicar principios SOLID
- Tener separación de responsabilidades
- Tener documentación técnica
---
# Arquitectura General
```mermaid
flowchart TD
A[Frontend Next.js] --> B[Backend FastAPI]
B --> C[SAP Business One Service Layer]
C --> D[SAP Business One Database]
```
---
# Tecnologías
# Frontend
- React.js
- Next.js
- TypeScript
- React Hook Form
- Zod
- Axios
- Zustand
- TailwindCSS
- Shadcn UI
---
# Backend
- Python
- FastAPI
- Pydantic
- SQLAlchemy
- httpx
- passlib[bcrypt]
- JWT Authentication
---
# Integración SAP
- SAP Business One Service Layer
- Session Management
- B1SESSION
- ROUTEID
---
# Estrategia de Desarrollo por Etapas
# IMPORTANTE
NO desarrollar frontend y backend simultáneamente.
El proyecto debe ejecutarse por etapas para:
- minimizar errores
- facilitar pruebas
- mantener arquitectura limpia
- evitar acoplamiento prematuro
---
# ETAPA 1 - Diseño de Arquitectura
## Objetivo
Definir completamente la arquitectura antes de programar.
---
## Tareas
### 1. Crear diagramas Mermaid
Crear:
- arquitectura general
- flujo login
- flujo CRUD
- flujo Service Layer
- arquitectura backend
- arquitectura frontend
---
## Diagramas recomendados
### Flujo Login
```mermaid
sequenceDiagram
Frontend->>Backend: Login usuario
Backend->>SAP Service Layer: Login técnico SAP
SAP Service Layer-->>Backend: B1SESSION
Backend->>SAP Service Layer: Consultar EmployeesInfo
SAP Service Layer-->>Backend: Datos usuario
Backend-->>Frontend: JWT
```
---
### Arquitectura Backend
```mermaid
flowchart TD
A[Routes] --> B[Services]
B --> C[Repositories]
C --> D[SAP Integration]
D --> E[Service Layer]
```
---
# Resultado esperado ETAPA 1
- Diagramas completos
- Arquitectura definida
- Carpetas definidas
- Responsabilidades definidas
---
# ETAPA 2 - Backend Base
# IMPORTANTE
Primero construir backend.
Razones:
- frontend depende APIs
- frontend depende autenticación
- frontend depende estructura JSON
- frontend depende validaciones
---
# Objetivos ETAPA 2
Construir:
- estructura FastAPI
- autenticación
- integración SAP
- manejo sesiones
- JWT
- logging
- manejo errores
---
# Estructura Backend
```text
/app
/api
/services
/repositories
/schemas
/models
/validators
/middlewares
/core
/integrations
/sap
/utils
/queries
```
---
# Funcionalidades Backend Iniciales
## 1. Login SAP técnico
Endpoint:
```text
POST /auth/login
```
---
## 2. Session Manager SAP
Implementar:
- login automático
- refresh automático
- manejo cookies
- timeout
- retry policy
---
## 3. JWT propio
Implementar:
- access token
- refresh token
- expiración
- middleware autenticación
---
## 4. Integración OHEM
Usar:
```text
EmployeesInfo
```
del Service Layer.
---
# Usuarios
Los usuarios funcionales estarán en:
```text
OHEM
```
mediante Service Layer.
---
# UDFs requeridos
| Campo | Uso |
|---|---|
| U_APP_USERNAME | Usuario |
| U_APP_PASSWORD | Password hash |
| U_APP_ROLE | Rol |
| U_APP_ACTIVE | Estado |
---
# Seguridad Passwords
Usar:
```text
bcrypt
```
Nunca guardar passwords en texto plano.
---
# Resultado esperado ETAPA 2
- Backend funcionando
- Login funcionando
- JWT funcionando
- Integración SAP funcionando
---
# ETAPA 3 - CRUD Socios de Negocio
# Objetivo
Implementar CRUD Business Partners.
---
# Entidad principal
```text
BusinessPartners
```
---
# Campos OCRD
| Campo | Uso |
|---|---|
| CardCode | Código |
| CardName | Nombre |
| CardType | Tipo |
| LicTradNum | Documento |
| Phone1 | Teléfono |
| E_Mail | Correo |
| Currency | Moneda |
| GroupCode | Grupo |
---
# Campos CRD1
| Campo | Uso |
|---|---|
| Address | Dirección |
| Country | País |
| Street | Calle |
| ZipCode | Código Postal |
| AdresType | Tipo |
---
# Reglas de negocio
## LicTradNum
Debe:
- tener 8 caracteres
- ser numérico
---
## CardCode
Debe autogenerarse:
```text
CardType + LicTradNum
```
Ejemplo:
```text
C12345678
```
---
# Operaciones CRUD
| Operación | Método |
|---|---|
| Listar | GET |
| Obtener | GET |
| Crear | POST |
| Actualizar | PATCH |
| Eliminar | DELETE/PATCH |
---
# Resultado esperado ETAPA 3
- CRUD completo
- Validaciones
- Integración real SAP
---
# ETAPA 4 - Queries Optimizados
# Objetivo
Mejorar performance.
---
# IMPORTANTE
NO usar entidades completas SAP para listados masivos.
---
# Estrategia
## Escrituras
Usar:
- Service Layer estándar
---
## Lecturas masivas
Usar:
- SQLQueries
- queries optimizados
- paginación
---
# Resultado esperado ETAPA 4
- Listados rápidos
- Filtros
- Paginación
---
# ETAPA 5 - Frontend Base
# Objetivo
Construir frontend luego de estabilizar backend.
---
# Estructura Frontend
```text
/src
/app
/components
/services
/hooks
/layouts
/store
/validators
/types
/utils
```
---
# Pantallas Iniciales
## Login
Campos:
- usuario
- password
- company db
---
## Master Layout
- sidebar
- header
- content
---
## Socio de Negocio
- formulario OCRD
- grid CRD1
- CRUD
- validaciones
---
# Resultado esperado ETAPA 5
- Login UI
- navegación
- consumo APIs
---
# ETAPA 6 - Frontend Empresarial
# Objetivo
Mejorar experiencia usuario.
---
# Funcionalidades
- loading states
- toast notifications
- manejo errores
- tablas
- búsqueda
- debounce
- paginación
- responsive
---
# ETAPA 7 - Seguridad y Performance
# Objetivo
Preparar entorno productivo.
---
# Implementar
- cache
- retry policy
- correlation ID
- logs
- auditoría
- middleware seguridad
- rate limiting
- circuit breaker
---
# ETAPA 8 - DevOps y Despliegue
# Backend
- Docker
- Variables entorno
- Gunicorn/Uvicorn
---
# Frontend
- Build Next.js
- Reverse proxy
---
# Infraestructura
- HTTPS
- NGINX
- SSL
- monitoreo
---
# Recomendaciones Arquitectónicas
## NO hacer
- acceso SQL directo escritura SAP
- passwords en texto plano
- lógica SAP en frontend
- consultas gigantes Service Layer
---
# SI hacer
- backend desacoplado
- funciones pequeñas
- validaciones separadas
- logs centralizados
- manejo global errores
---
# Objetivo Final
Construir una plataforma empresarial:
- mantenible
- escalable
- desacoplada
- compatible con SAP Business One
- optimizada para crecimiento futuro