Skip to content

Documentación del Sistema Bautista

Bienvenido a la documentación del sistema Bautista. Este espacio contiene toda la información técnica y funcional del proyecto, tanto para backend como frontend.

Objetivo de esta documentación

Esta documentación tiene un doble propósito:

  1. Documentar el sistema actual: Explicar qué funcionalidades tiene el sistema, cómo funcionan y cómo están implementadas
  2. Servir como requerimientos: Definir qué debe hacer el sistema antes de implementar nuevas funcionalidades

Estructura de la documentación

La documentación está organizada en tres niveles principales:

1. Core (Núcleo del sistema)

Módulos fundamentales que son la base del sistema:

  • core/auth/ - Autenticación y autorización
  • core/config/ - Configuraciones del sistema

2. Shared (Compartido)

Recursos y componentes compartidos entre módulos:

  • shared/general/ - Utilidades y helpers generales
  • shared/components/ - Componentes reutilizables

3. Features (Funcionalidades por módulo)

Documentación completa de funcionalidades organizadas por módulo de negocio

docs/
├── README.md                          # Este archivo - Índice general
├── git_workflow.md                    # Convenciones de uso de Git

├── core/                              # Módulos core del sistema
│   ├── auth/                          # Autenticación y autorización
│   └── config/                        # Configuraciones

├── shared/                            # Recursos compartidos
│   ├── general/                       # Utilidades generales
│   └── components/                    # Componentes compartidos

├── features/                          # Funcionalidades completas
│   ├── README.md                      # Guía para documentar funcionalidades
│   ├── template.md                    # Plantilla base
│   ├── ventas/                        # Módulo de ventas
│   ├── tesoreria/                     # Módulo de tesorería
│   │   └── boniret-resource.md        # Ejemplo: Conceptos de retenciones
│   ├── ctacte/                        # Módulo de cuenta corriente
│   ├── compra/                        # Módulo de compras
│   ├── contabilidad/                  # Módulo de contabilidad
│   ├── stock/                         # Módulo de stock
│   └── crm/                           # Módulo de CRM

├── backend/                           # Documentación técnica del backend
│   ├── README.md                      # Guía de arquitectura backend
│   └── modules/                       # Organizado por módulo
│       ├── ventas/                    # Backend ventas
│       ├── tesoreria/                 # Backend tesorería
│       ├── ctacte/                    # Backend cuenta corriente
│       ├── compra/                    # Backend compras
│       ├── contabilidad/              # Backend contabilidad
│       ├── stock/                     # Backend stock
│       └── crm/                       # Backend CRM

├── frontend/                          # Documentación técnica del frontend
│   ├── README.md                      # Guía de estructura frontend
│   └── modules/                       # Organizado por módulo
│       ├── ventas/                    # Frontend ventas
│       ├── tesoreria/                 # Frontend tesorería
│       ├── ctacte/                    # Frontend cuenta corriente
│       ├── compra/                    # Frontend compras
│       ├── contabilidad/              # Frontend contabilidad
│       ├── stock/                     # Frontend stock
│       └── crm/                       # Frontend CRM

└── architecture/                      # Arquitectura general del sistema
    └── README.md                      # Decisiones arquitectónicas

Cómo usar esta documentación

Para desarrolladores nuevos

  1. Lee primero la Arquitectura General
  2. Revisa la Guía de Backend si vas a trabajar en el servidor
  3. Revisa la Guía de Frontend si vas a trabajar en la interfaz
  4. Consulta las Funcionalidades para entender qué hace cada módulo

Para documentar una nueva funcionalidad

  1. Lee la Guía para documentar funcionalidades
  2. Copia la Plantilla (ver instrucciones de uso en el archivo)
  3. Completa la información de backend y frontend según corresponda
  4. Coloca el archivo en features/{modulo}/ organizándolo por módulo
  5. Si la funcionalidad es compartida, colócala en shared/

Ejemplo: Para documentar un recurso en tesorería, crear:

  • features/tesoreria/nombre-recurso.md - Documentación completa de la funcionalidad
  • Ver boniret-resource.md como ejemplo

Para consultar implementaciones existentes

  • Backend: Busca en backend/modules/{modulo}/ la implementación técnica del módulo
  • Frontend: Busca en frontend/modules/{modulo}/ las vistas y componentes
  • Funcionalidad completa: Busca en features/{modulo}/ la documentación integral
  • Core/Shared: Busca en core/ o shared/ según corresponda

Módulos del sistema

El sistema está organizado en los siguientes módulos principales:

Módulos de negocio

  • Ventas (modulo-venta/): Gestión de ventas, facturación y comprobantes
  • Compras (modulo-compra/): Gestión de compras y proveedores
  • Cuenta Corriente (modulo-ctacte/): Gestión de cuentas corrientes de clientes
  • Tesorería (modulo-tesoreria/): Gestión de cobranzas, pagos y movimientos de caja
  • Contabilidad (modulo-contabilidad/): Registros contables y asientos
  • Stock (modulo-stock/): Gestión de inventario
  • CRM (modulo-crm/): Gestión de clientes y relaciones

Módulos transversales

  • Auth: Autenticación y autorización
  • Config: Configuraciones del sistema
  • General: Recursos generales compartidos
  • Audit Log: Auditoría de acciones del sistema

Convenciones de documentación

Nombres de archivos

  • Usar kebab-case para nombres: facturacion-electronica.md
  • Ser descriptivos pero concisos
  • Organizar por módulo: features/{modulo}/nombre-funcionalidad.md
  • Para recursos: usar sufijo -resource.md (ej: boniret-resource.md)
  • Para procesos: usar sufijo -process.md (ej: facturacion-masiva-process.md)

Estructura de documentos

Cada documento de funcionalidad debe contener:

  1. Descripción general: Qué hace la funcionalidad
  2. Frontend: Vistas, interacciones, permisos
  3. Backend: Recursos, endpoints, lógica de negocio, relaciones
  4. Reglas de negocio: Validaciones y restricciones
  5. Casos de uso: Ejemplos de uso común

Referencias cruzadas

Cuando un documento hace referencia a otro, usar enlaces relativos:

markdown
Ver también: [Gestión de Comprobantes](./comprobantes.md)

Stack tecnológico

Backend

  • Lenguaje: PHP 8+
  • Framework: Custom/Slim Framework
  • Base de datos: MySQL
  • Autenticación: JWT
  • Testing: PHPUnit

Frontend

  • Framework: (Especificar según el proyecto)
  • Gestión de estado: (Especificar según el proyecto)
  • Comunicación: REST API

Recursos adicionales

Contribuir a la documentación

Toda documentación debe ser:

  • Clara y concisa: Ir al punto sin rodeos
  • Actualizada: Mantener sincronizada con el código
  • Completa: Incluir toda la información necesaria para entender y usar la funcionalidad
  • Ejemplos: Incluir ejemplos de uso cuando sea posible

Si agregas una nueva funcionalidad, debes documentarla antes de considerarla completa.


Última actualización: 2025-12-09