1. Introducción
2. Objetivo
3. Contexto y regulaciones
3.1. Contexto
3.1.1. Científicos ciudadanos
3.1.2. El teléfono celular como herramienta de diagnóstico
3.1.2.1. Hardware
3.1.2.2. Ubicuidad
3.1.2.3. Ecosistemas de aplicaciones
3.1.3. La empresa, el equipo e invitados
3.1.3.1. Pruebas de usabilidad y feedback interno
3.2. HIPAA
3.2.1. ¿Que es PHI?
3.2.2. HIPAA en el desarrollo de software
3.2.2.1. Políticas de Privacidad
3.2.2.2. Políticas de Seguridad
3.2.2.3. Políticas de Notificación de incidente
4. Trabajos relacionados
4.1. CodeSandbox
4.1.1. CodeSandbox – SandPack
5. Análisis de tecnologías
5.1. Tecnologías de front-end
5.1.1. ReactJs
5.1.1.1. Desarrollo guiado por componentes
5.1.1.2. Lodash
5.1.1.3. MomentJs
5.2. Tecnologías para el desarrollo móvil
5.2.1. React Native
5.3. Lenguaje
5.3.1. JavaScript
5.4. Tecnologías de backend
5.4.1. Node.Js
5.4.2. Express
5.4.3. MeteorJs
5.4.3.1. Colecciones
5.4.3.2. Publicación y suscripción
5.4.3.3. Paquetes MeteorJs
5.4.3.4. Métodos Meteor
5.4.4. Babel
5.4.5. Bases de datos
5.4.5.1. MySQL
5.4.5.2. MongoDB
5.4.5.3. SQLite
5.5. Desarrollo y características del IDE Web
5.5.1. Requerimientos
5.5.1.1. Actores
5.5.1.2. Lista de casos de uso iniciales
5.6. Prueba de concepto inicial sobre la implementación
5.6.1. Código como servicio
5.6.2. Previsualización inmediata del widget
5.6.3. Consultas SQL dentro de los widgets
5.6.3.1. Segmentación y aislamiento de información del usuario final
5.7. Arquitectura del sistema e interconexiones
5.7.1. Recursos compartidos: Base de Datos MySQL
5.7.2. Servicios internos: Login Service
5.7.3. Servicios internos: CMS Service
5.7.4. Login y manejo de sesión
5.7.5. Ciclo de vida de un Widget
5.7.5.1. Composición y anidamiento
5.7.5.2. Posibles estados
5.7.5.3. Pantalla de inicio
5.7.5.4. Creación y edición
5.7.5.5. Características heredadas
5.8. Desarrollo de un widget
5.8.1. Estilos y su procesamiento
5.8.1.1. Previsualización y renderizado
5.8.2. Usando datos de prueba
5.9. Consultas a la base de datos
5.9.1. Creación e inicialización de la base de datos
5.9.1.1. Precarga en el cliente
5.9.1.2. Precarga en el servidor
5.9.1.3. Inicialización de la base de datos SQLite
5.9.1.4. Tabla metadata
5.9.2. Precarga de tablas
5.9.2.1. Versionado de tablas
5.9.2.2. Funciones de precarga para cada tabla
5.9.3. Limitaciones de la implementación
5.10. Desarrollos secundarios
5.10.1. Plataforma móvil
5.10.1.1. React Native y la estrategia general
5.10.1.2. Webview
5.10.1.3. Interceptando eventos
6. Conclusiones y trabajos futuros
6.1. Conclusiones
6.2. Trabajos futuros
Glosario
Índice de figuras
Bibliografía