Categorías
Desarrollo web General Temporada 2

SleepTracker 0.1-a

Siguiendo con la idea de trabajar en mini-proyectos, hace unas semanas comencé a crear una aplicación web que fuera capaz de hacer un seguimiento de las horas de sueño.

Aquí la complejidad vendría de la mano de tener que desarrollar el stack completo:

Arquitectura

En la parte del servidor he creado un pequeño server con NodeJS y Express que monta una API sencilla sobre la que realizar las consultas.

Los datos están almacenados en una base de datos MongoDB que almacena todas las entradas, tanto las completadas como las que no.

Decidí que fuera la lógica del cliente la que decidiera qué valores mostrar.

La parte del front-end la estoy haciendo con una aplicación simple en React organizada por componentes con la lógica y las consultas extraídas de ella para manejarlas de forma más sencilla.

Diseño frontend

Ahora queda la parte más visual y la de tratamiento de datos.

Una vez comprobadas las conexiones y viendo que la aplicación web es capaz de obtener todos los datos del servidor he empezado a trabajar con ReCharts (https://recharts.org/en-US) para la presentación gráfica.

Lo cierto es que, por ahora, la forma de mostrar las gráficas está siendo bastante sencilla, pero me estoy empezando a encontrar problemas a la hora de personalizar bien los estilos.

Siguientes pasos

Voy a intentar perfilar un poco mejor la presentación gráfica, adecuando los estilos al diseño de la página y terminaré de añadir algunos de los componentes restantes.

Una vez que haya terminado la parte más visual, prepararé el diseño de la inserción de datos, que ha de dividirse en dos partes:

  • Nueva entrada: En el momento de ir a dormir, para marcar el inicio del tiempo.
  • Cierre de entrada: En el momento de despertarse, para marcar el fin del tiempo.

Esto se hará desde un acceso paralelo y mucho más simple para que se puede hacer de forma rápida desde el teléfono móvil.

Categorías
DSM5Tool

Log 1.4: Añadiendo trastornos, repensando criterios.

Para poder seguir avanzando con el desarrollo de DSM5Tool he terminado de listar todos los trastornos. El proceso fue algo lento, porque la fuente de información era una guía diagnóstica en PDF.

Primero listé todos los trastornos añadiéndoles propiedades como descripción, categoría, tipo o los códigos CIE-9 y CIE-10 en un documento Excel.

Ese documento lo exporté a CSV y, de ahí, lo convertí en CSV empleando https://csvjson.com/csv2json como herramienta.

Uno de los problemas principales a los que me tuve que enfrentar fue a la definición del objeto trastorno.

Este, dadas sus características, incluye criterios que, a su vez, pueden incluir subcriterios.

Gestionar matrices dentro de matrices ha sido un poco un quebradero de cabeza, pero finalmente completé la fase 0.2.1 y puedo editar cualquier tipo de trastorno.

interface Criterio { 
  descripcion: string;
  subcriterios?: string[];
}

Además, reconfiguré completamente el backend para trabajar con MongoDB de forma que los trastornos ya no están en un archivo. La gestión de los métodos GET y PUT está terminada: los formularios funcionan perfectamente gracias al uso de axios.

Con esto concluyo la versión 0.2.2 y me dispongo a enfrentarme con las tareas asociadas a la 0.2.3:

Ahora mismo me resulta clave ir incrementando la información almacenada en la base de datos, pero, al mismo tiempo, necesito refactorizar el código e implementar mejoras en la interfaz de usuario de algunas partes del proyecto.

¡Nos vemos en la 0.2.3!