Proyecto OFBiz, Git y XML: Guía Práctica de Desarrollo de Software Empresarial
Proyecto de implementación de un sistema ERP con software de código abierto
1. Inicio del proyecto
Plan y documentación inicial del proyecto.
2. Análisis y descripción
Análisis de la situación actual de la empresa y descripción de los procesos involucrados.
3. Especificación de requisitos
Relación de requisitos del sistema a implementar.
4. Factibilidad
Estudio de la factibilidad técnica y económica del proyecto.
5. Funcionalidades
Definición de las funcionalidades que deberá cubrir el sistema.
6. Diseño
6.1 Datos y modelo
Diseño de la base de datos y del modelo de datos.
6.2 Implementación
Desarrollo e implementación del sistema.
6.3 Puesta en marcha y soporte
Puesta en producción y soporte posterior.
Empresa y problemática
Situación actual: La empresa realiza ventas, pero no dispone de un sistema que permita conocer el detalle de las mismas. No cuenta con un sistema integrado y gestiona la información en hojas de cálculo (Excel).
Solución propuesta:
- Mejorar la gestión de compras, cobros y cálculo de resultados.
- Registrar pagos diarios y facturación de ventas.
- Conocer el costo de los productos vendidos.
- Notificar a los proveedores los pagos próximos.
- Actualizar el inventario, que actualmente no está actualizado, y generar reportes y códigos de producto.
Módulos del sistema ERP
Se propone un modelo básico de ERP con los siguientes módulos:
- Recursos humanos
- Manufactura y producción
- Contabilidad y finanzas
- Ventas y marketing
Servicios e infraestructura
Se requiere programar y procesar información para un servidor de hosting, que concentre toda la información de la empresa. Requisitos de hardware: procesador, memoria RAM y disco duro.
Apache OFBiz
Apache OFBiz es un framework de código abierto que ofrece soporte de software, incluye un sistema de ERP y un sistema web. También permite la integración de pagos y transacciones para comercio electrónico.
Framework
Un framework es un entorno de trabajo para desarrolladores de software que integra componentes (bibliotecas, lenguajes, soporte de programas), facilita el trabajo y ayuda a desarrollar y unir los diferentes componentes de un proyecto.
Costos y elección de la base de datos
El costo de una solución de código abierto incluye el hosting y los servicios profesionales de adaptación, mantenimiento y puesta en marcha.
Para elegir la base de datos se deben entender los requisitos actuales y futuros, considerando:
- Cantidad y tipo de datos.
- Número de usuarios.
- Disponibilidad y escalabilidad.
- Seguridad (encriptación, administración y usuarios).
- Experiencias previas, presupuesto y soporte.
- Requisitos del sistema operativo.
Bases de datos consideradas: PostgreSQL, MySQL y SQLite.
GNUCash
GNUCash es un sistema de finanzas de código abierto.
XML
XML (Extensible Markup Language) es un estándar general de marcado de lenguaje, simplificado y adaptado a internet. Funciona mediante etiquetas, almacena datos en un formato legible y permite la compatibilidad entre sistemas para compartir información de forma segura. Mejora la compatibilidad de las aplicaciones y tiene partes definidas que se delimitan mediante etiquetas.
OFX
OFX es un protocolo abierto para operaciones financieras que permite a los bancos conectarse con el software.
Requisitos de hardware y software
- Hardware: servidor.
- Software: sistema operativo, navegador y base de datos.
Instalación: incluye la adquisición de servicios externos.
Patrón de diseño Vista-Controlador
El patrón Modelo-Vista-Controlador (MVC) separa el modelo de datos, la vista (interfaz de usuario) y el controlador (lógica de procesos).
Control de versiones con Git
Git es un software de control de versiones que permite gestionar y configurar los cambios del mantenimiento de las aplicaciones. Es un sistema de control de versiones distribuido para el código fuente.
Ventajas
- Auditoría de código: saber quién hizo cada cambio y cómo se modificó el proyecto.
- Reversión: volver a versiones anteriores.
- Mejor capacidad de trabajo en equipo.
Comandos básicos
- git init: crea un nuevo repositorio.
- git add y git commit: guardan los cambios en el índice y en HEAD.
- git push origin <nombre-rama>: envía los cambios al repositorio remoto.
- Ramas: permiten aislar funcionalidades dentro de la rama master.
- git checkout -b <featurex>: crea una rama y cambia a ella.
- git checkout master: vuelve a la rama original.
- git push origin <rama>: envía la rama al repositorio remoto.
- git pull: actualiza el repositorio local con la versión más reciente del repositorio remoto.