Motor para Sistemas de Información estilo Pasos de Jesús - msip
Este es un motor diseñado para ser base actualizada de sistemas de información seguros o de otros motores para sistemas de información.
Puedes pensarlo como una capa adicional sobre Ruby on Rails que incluye soluciones estándar, seguras y probadas para más elementos de un sistema de información como:
- Pila actualizada: desarrollado en simultaneo con adJ (distribución de
OpenBSD) y modificado para operar siempre sobre las nuevas versiones
de adJ que se actualizan cada 6 meses para incluir:
sistema operativo más reciente, motor de base de datos más reciente,
Ruby reciente, librerías y gemas más recientes. Probado de manera
continua en Linux (vía integración continúa con gitlab-ci).
Busca promover gemas recienten que faciliten el desarrollo del resto de la aplicación a nivel de interfaz e internacionalización y proveer ayudas para actualizar --por lo menos documentación en el directorio doc y guías de actualización en el wiki. - Pruebas con
minitest
- Modelos y controladores básicos con diversos propósitos y fácilmente
ampliables o modificables con herencia o con
ActiveSupport::Concern
para aplicaciones más complejas. - Propuesta para administrar modelos con vistas automáticas (no requieren
código) y controladores semiautomáticos vía un generador. Similar a
ActiveAdmin,
Administrate y
Rails Admin
Usa
Msip::Modelo
,Msip::ModelosController
y vistas deapp/views/msip/modelos/
. La vistaindex
incluye un filtro definible conscope
en el modelo. La vista parcial_form
genera automáticamente un formulario con elementos típicos. Consulta https://gitlab.com/pasosdeJesus/msip/-/blob/main/doc/vistas-automaticas.md - Concepto y propuesta de tablas básicas (también llamados tesauros
de la aplicación o parámetros de la aplicación) con
vistas automáticas y controladores y modelos semiautomáticos vía un
generador.
Validación automática de campos
has_many
cuando se borra un registro para reportar si existen registros dependientes en otras tablas (en lugar de fallar) - Propuesta inicial para control de acceso con:
- Autenticación con tabla
usuario
(modelo ::Usuario), gemadevise
y cifradobcrypt
- Autorización muy configurable con gema
cancancan
que puede valerse de roles (inicialmente sólo Administrador y Operador) o grupos (implementados en tablasmsip_grupo
--modeloMsip::Grupo
--, ymsip_grupo_usuario
), o en otras tablas o métodos que elija.
- Autenticación con tabla
- Tablas estándar iniciales para ubicaciones geográficas
msip_pais
,msip_departamento
,msip_municipio
,msip_clase
para centros poblados),msip_tclase
(tipos de centros poblados),msip_tsitio
(tipo de sitio) ymsip_ubicacion
. Con datos de todos los países, aunque estados y municipios completos para Colombia, Venezuela y Honduras y ciudades completas para Colombia de acuerdo a DIVIPOLA 2022 con actualización periódica (vía migraciones derails
) de acuerdo a esa fuente oficial. - Tablas estándar iniciales para personas y relaciones entre personas
msip_persona
,msip_trelacion
(tipo de relación entre personas),tdocumento
(tipo de documento de identificación personal),msip_persona_trelacion
(relación entre 2 personas). - Tablas estándar iniciales para grupos de personas
msip_grupoper
, organizaciones socialesmsip_orgsocial
(así llamamos a un grupo de personas que se ponen de acuerdo para un trabajo o representación conjunta), sus sectoresmsip_sectororgsocial
y la relación entre una persona y una organización social con su perfilmsip_orgsocial_persona
ymsip_perfilorgsocial
- Propuesta para anexos con tabla
msip_anexo
y vistas incrustables y gemakt-paperclip
- Facilidades de configuración de aplicaciones que usen este motor mediante
- Variables de ambiente en un archivo
.env
y la gemadotenv
. - Con variables de configuración de rails en el espacio de
nombres
config.x
, - Con variables de configuración en
config/initializers/msip.rb
(por ejemplo país por omisión enMsip.paisomision
). - La inicialización de este motor (
lib/msip/engine.rb
) incluye automáticamente migraciones de motores en la aplicación final.
- Variables de ambiente en un archivo
- Propuesta de respaldo cifrado y comprimido con
7z
por parte de usuario final (del rol que se configure) desde menús de la aplicación. - Localización con mecanismos estándar de
rails
y detwitter_cldr
. Propuesta para localización de campos tipo fecha(s) (que en español no es bien soportado porrails
) especificando el formato local enconfig.x.formato_fecha
, así como ayudas para definir campos de fecha localizados en ese formato. - Vistas y formularios generados con las herramientas estándar de
rails
ysimple_form
. Listados paginados conwill_paginate
. - Preparado para construir aplicaciones adaptables (responsive) con
bootstrap
,stimulus
y/ocoffescript
yjquery
. Se usa de manera predeterminadachosen
para cuadros de selección simple y múltiple ybootstrap-datepicker
para campos de fecha. - Incluye biblioteca para operaciones comunes con javascript, por ejemplo para
facilitar actualización automática mediante AJAX (ver
msip_enviarautomatico_formulario
enapp/asset/javascript/msip/motor.js.coffee.erb
que enviará automáticamente formularios cuando cambien campos con claseenviarautomatico
o se presionen enlaces a anclas con esa clase) - Tareas
rake
para actualizar indices y sacar copia de respaldo de base de datos
Requisitos
Ver https://gitlab.com/pasosdeJesus/msip/blob/main/doc/requisitos.md
Aplicación mínima incluida en msip
msip ya viene con una aplicación mínima (en el directorio test/dummy
)
que es la usada para hacer pruebas de regresión. Es una aplicación completa
con diseño web adaptable, autenticación, manejo de clave con condensado
bcrypt
, usuarios, grupos, vistas completas para tablas básicas y para
modelos persona y organización social. Incluso antes de intentar
iniciar una aplicación aparte, puede intentar ejecutar esa aplicación mínima,
siguiendo las instrucciones de:
https://gitlab.com/pasosdeJesus/msip/blob/main/doc/aplicacion-de-prueba.md
Iniciar un sistema de información usando msip
Ver https://gitlab.com/pasosdeJesus/msip/blob/main/doc/iniciar-si-usando-msip.md
Resto de la documentación
Después de tener tu primer ejemplo puedes generar tablas básicas para
tu aplicación, personalizar los modelos, vistas y controladores que msip
ofrece.
Consulta: https://gitlab.com/pasosdeJesus/msip/blob/main/doc/README.md