*Este motor es obsoleto, el nuevo que se basa en este se llama msip y se desarrolla en https://gitlab.com/pasosdeJesus/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 travis.org).
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::Concernpara 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)[https://activeadmin.info/],
(Administrate)[https://github.com/thoughtbot/administrate] y
(Rails Admin)[https://github.com/sferik/rails_admin]
Usa Sip::Modelo, Sip::ModelosController y vistas de
app/views/sip/modelos/. La vistaindexincluye un filtro definible conscopeen el modelo. La vista parcial_formgenera automáticamente un formulario con elementos típicos. Consulta https://github.com/pasosdeJesus/sip/wiki/Vistas-autom%C3%A1ticas-con-Sip::Modelo-y-Sip::ModelosController - 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_manycuando 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), gemadevisey cifradobcrypt - Autorización muy configurable con gema
cancancanque puede valerse de roles (inicialmente sólo Administrador y Operador) o grupos (implementados en tablassip_grupo--modeloSip::Grupo--, ysip_grupo_usuario), o en otras tablas o métodos que elija.
- Autenticación con tabla
- Tablas estándar iniciales para ubicaciones geográficas
sip_pais,sip_departamento,sip_municipio,sip_clase(para centros poblados),sip_tclase(tipos de centros poblados),sip_tsitio(tipo de sitio) ysip_ubicacion. Con datos de todos los países, aunque estados y municipios completos para Colombia y Venezuela y ciudades completas para Colombia de acuerdo a DIVIPOLA 2019 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
sip_persona,sip_trelacion(tipo de relación entre personas),
tdocumento(tipo de documento de identificación personal),sip_persona_trelacion(relación entre 2 personas). - Tablas estándar iniciales para grupos de personas
sip_grupoper, organizaciones socialessip_orgsocial(así llamamos a un grupo de personas que se ponen de acuerdo para un trabajo o representación conjunta), sus sectoressip_sectororgsocialy la relación entre una persona y una organización social con su perfilsip_orgsocial_personaysip_perfilorgsocial - Propuesta inicial para anexos con tabla
sip_anexoy vistas incrustables y gemakt-paperclip - Facilidades de configuración de aplicaciones que usen este motor mediante
- Variables de ambiente en un archivo
.envy la gemadotenv. - Con variables de configuración de rails en el espacio de
nombres
config.x, - Con variables de configuración en
config/initializers/sip.rb(por ejemplo país por omisión enSip.paisomision). - La inicialización de este motor (
lib/sip/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
7zpor parte de usuario final (del rol que se configure) desde menús de la aplicación. - Localización con mecanismos estándar de
railsy 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
railsysimple_form. Listados paginados conwill_paginate. - Preparado para construir aplicaciones adaptables (responsive) con
bootstrap,coffescript,jquery. Se recomienda uso dechosenpara cuadros de selección simple y múltiple ybootstrap-datepickerpara campos de fecha. - Incluye biblioteca para operaciones comunes con javascript, por ejemplo para
facilitar actualización automática mediante AJAX (ver
sip_enviarautomatico_formularioenapp/asset/javascript/sip/motor.js.coffee.erbque enviará automáticamente formularios cuando cambien campos con claseenviarautomaticoo se presionen enlaces a anclas con esa clase) - Tareas
rakepara actualizar indices y sacar copia de respaldo de base de datos
Ver https://github.com/pasosdeJesus/sip/blob/master/doc/requisitos.md
sip 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://github.com/pasosdeJesus/sip/blob/master/doc/aplicacion-de-prueba.md
Ver https://github.com/pasosdeJesus/sip/blob/master/doc/iniciar-si-usando-sip.md
Después de tener tu primer ejemplo puedes generar tablas básicas para
tu aplicación, personalizar los modelos, vistas y controladores que sip
ofrece.
Consulta: https://github.com/pasosdeJesus/sip/blob/master/doc/README.md
