diff --git a/005-Learn/Instructivo Git Gitea.md b/005-Learn/Instructivo Git Gitea.md index b8ba3fc..4bf281b 100644 --- a/005-Learn/Instructivo Git Gitea.md +++ b/005-Learn/Instructivo Git Gitea.md @@ -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 diff --git a/005-Learn/Proyecto SAP B1 - FastAPI - React - Next.js.md b/005-Learn/Proyecto SAP B1 - FastAPI - React - Next.js.md new file mode 100644 index 0000000..8c6b675 --- /dev/null +++ b/005-Learn/Proyecto SAP B1 - FastAPI - React - Next.js.md @@ -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