se agrego archivo Proyecto SAP React Next.js
This commit is contained in:
1 parent
b2b9ed6cca
commit
b2794978b0
2 files changed
+613
-1
No files matched your search
@@ -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
|
||||
Reference in new issue
Block a user