{"id":24553728,"url":"https://github.com/jonatandb/mipresion","last_synced_at":"2026-04-08T11:32:51.022Z","repository":{"id":273651327,"uuid":"920139053","full_name":"Jonatandb/MiPresion","owner":"Jonatandb","description":"Registro de presión sanguínea por Jonatandb","archived":false,"fork":false,"pushed_at":"2025-02-13T00:53:27.000Z","size":24605,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-13T01:32:16.747Z","etag":null,"topics":["blood-pressure-tracker","css","css-modules","html","javascript","jonatandb","react","typescript","vite"],"latest_commit_sha":null,"homepage":"http://jonatandb.dev.ar/MiPresion/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jonatandb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-21T16:22:44.000Z","updated_at":"2025-02-13T00:53:31.000Z","dependencies_parsed_at":"2025-01-29T07:20:02.729Z","dependency_job_id":null,"html_url":"https://github.com/Jonatandb/MiPresion","commit_stats":null,"previous_names":["jonatandb/mipresion"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jonatandb%2FMiPresion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jonatandb%2FMiPresion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jonatandb%2FMiPresion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jonatandb%2FMiPresion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jonatandb","download_url":"https://codeload.github.com/Jonatandb/MiPresion/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243885891,"owners_count":20363644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blood-pressure-tracker","css","css-modules","html","javascript","jonatandb","react","typescript","vite"],"created_at":"2025-01-23T02:15:01.385Z","updated_at":"2025-12-30T21:05:02.144Z","avatar_url":"https://github.com/Jonatandb.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🩸MiPresión\n\n- Registro de presión sanguínea\n\n---\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://jonatandb.dev.ar/MiPresion/\"\u003e\n        \u003cimg src=\"./MiPresion_tour.gif\" alt=\"MiPresión - Registros de presión sanguínea por Jonatandb\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n## 🚀 Sitio Web\n\n[https://jonatandb.dev.ar/MiPresion/](https://jonatandb.dev.ar/MiPresion/)\n\n---\n\n## 👩🏻‍💻 Tecnologías usadas\n\n- React\n- Vite\n- TypeScript\n- CSS Modules\n\n---\n\nChatear con este repo:\n\n- [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Jonatandb/MiPresion)\n\n---\n\n## Ejecutar localmente\n\nClonar el proyecto\n\n```bash\n  git clone https://github.com/Jonatandb/MiPresion\n```\n\nIr al directorio del proyecto\n\n```bash\n  cd MiPresion\n```\n\nInstalar dependencias\n\n```bash\n  pnpm install\n```\n\nCrear el archivo `.env.development` usando `.env.example`.\n\nIniciar el servidor\n\n```bash\n  pnpm run dev\n```\n\nVisitar:\n\n- http://localhost:5173\n\n---\n\n## Generación de versión productiva para Github Pages\n\nCrear el archivo `.env` usando `.env.example`.\n\nEjecutar\n\n```bash\n  npm run build\n```\n\nO bien `build-dev` para verificar el build:\n\n```bash\n  npm run build-dev\n```\n\n- Requiere el archivo `.env.development`\n\n---\n\n# 🧭 Roadmap\n\n## 🏁 Posibles agregados:\n\n- [ ] Agregar calendario que indique en que fechas se registraron mediciones\n- [ ] Agregar tablero con estadísticas\n- [ ] Que desde Ajustes se pueda especificar el país de origen y que la tabla de niveles (y los niveles mostrados en los registros) se muestre de acuerdo a dicho país.\n  - [ ] Agregar posibilidad de personalizar valores de la tabla de niveles\n- [ ] Agregar opción de exportar reporte a archivo de Excel\n- [ ] Agregar opción de \"Modo Daltónico\"\n- [ ] Agregar opción para cambiar de idioma entre inglés y español (y potencialmente portugués y francés)\n\n## 📝 Pendientes:\n\n- Ajustes:\n\n  - [ ] Agregar opción \"Exportar/Importar los datos\" (json), para importar todo desde otro navegador o `dominio`\n  - [ ] Agregar sección “Otros de mis proyectos” con proyectos como 🔑LoginsAdmin y 💸MisDeudas (próximamente), clickeables (con su propia URL), con info de tales proyectos.\n\n- Reporte PDF:\n\n  - [ ] Agregar sección que permita elegir qué columnas tendrá el reporte (Pulso, Medicina, Postura, Ubicación del medidor, Notas), por defecto: Pulso, Medicina y Notas.\n\n- A considerar:\n\n  - [ ] Agregar validación que avise si hay cambios sin guardar y se está intentando cambiar de pantalla (o cerrar el modal)\n  - [ ] Agregar checkbox \"Promediar con segunda medición\", que permita ingresar valores de una segunda medición y finalmente guarde el valor de sistólica, diastólica y pulso promediados.\n  - [ ] Hacer versión responsive para que en desktop aproveche todo el ancho de la pantalla\n  - [ ] Investigar alguna forma de lograr que el usuario vuelva un hábito registrar las mediciones (para que no se olvide).\n    - Podría investiagr sobre ServiceWorkers para enviar una notificación/recordatorio o permitir configurar un envío de email diario de varias veces al día \"recordando\" tomarse la presión y registrar la medición.\n\n- Refactors:\n\n  - [ ] Hacer que la categoría a la que corresponde una medición sea un campo de la misma y no sea recalculada en cada renderizado sino en cada modificación\n  - [ ] Crear un contexto para guardar todos los ajustes (Facilitará exportación a JSON)\n  - [ ] Reemplazar formulario de agregar medición con uno de Formik (o React Hook Form) con Yup para validaciones\n  - [ ] Reemplazar alerts con [React-toastify](https://www.npmjs.com/package/react-toastify)\n  - [ ] Agregar React-Modal o similar para reemplazar los confirm\n\n## 👷🏻‍♂️ Trabajando:\n\n## ✅ Completado:\n\n- [x] Se mejoran validaciones para detectar \"valores fuera de rango\"\n\n- [x] Se agrega validación para evitar ingresar diastólica menor a sistólica\n\n- [x] Agregar [React-share](https://www.npmjs.com/package/react-share) para permitir compartir el sitio en redes sociales\n\n- [x] Agregado de tabindex y outline para navegación por teclado\n\n- [x] Solucionado: 🐛 Verificar por qué cuando clickeo los botones de cancelar y actualizar en el modal de agregar, el click parece que se \"va al fondo\" y se selecciona el 2do registro de la lista...(o algo similar)\n\n- [x] Se agrego posibibilidad de registrar postura y ubicación del medidor\n\n- [x] Se corrige el detalle de que \"mmHg\" va todo junto\n\n- [x] Se agrega texto \"Pulso\" sobre el texto \"BPM\"\n\n- [x] Agregado de [React-helmet](https://www.npmjs.com/package/react-helmet) para mejorar SEO\n\n- [x] Agregado de columna \"Arritmia\" al reporte PDF\n\n- [x] Agregado posibilidad de generar el reporte PDF especificando rango de fechas\n\n- [x] Agregado de ícono para exportar a PDF en el header. Y en la pantalla de exportar a PDF agregado de un mensaje que avisa si no hay mediciones e invita a crear una.\n\n- [x] Agregado al componente Shortcuts sección que lleva a ayuda sobre la arritmia\n\n- [x] Eliminado del componente Shortcuts opción que llevaba al formulario de contacto\n\n- [x] Se pasaron todas las medidas en px a rem para poder hacer zoom y que todo se vea proporcionalmente más grande correctamente\n\n- [x] Agregada posibilidad de registar Arritmia (Latido irregular) (Checkbox)\n\n- [x] Reemplazar px por rem en todos los CSS\n\n- [x] Agregar al reporte el promedio de presión sistólica/diastólica/pulso para el rango de fechas actual.\n\n- [x] Agregado de 404.html y configuración de Vite para que lo copie a la carpeta build, para ver si cuando refrescan la pagina estando en una ruta simulada por React Router (ej: /MiPresion/help) en lugar de obtener un error el usuario es redirigido a la home\n\n- [x] Agregado de sección con changelog al final del modal de ayuda\n\n- [x] Agregar opción de exportar por rango de fechas\n\n- [x] Pasar a svg todos los íconos\n\n- [x] Agregado de validación que elimina valores de sistólica, diastólica y pulso cuando el ingreso es incorrecto (no númerico, menor a cero o mayor a 500)\n\n- [x] Agregar sección \"¿Dónde se guardan mis datos?\" -\u003e Navegador\n\n- [x] Agregar debajo de \"Agregar una medición\", componente de \"Accesos Directos\" con \"¿Cómo me tomo la presión?\", \"¿Sugerencias? ¿Errores?\" (y otras opciones útiles)\n\n- [x] Cuando se quita el foco de \"Sistólica\" y/o \"Diastólica\", validar (si hay datos en ambos campos) y mostrar una leyenda con \"Valores fuera de rango (¿Qué significa?)\" (clickeable) que muestre la sección \"¿Que significa \"Valores fuera de rango\"?\n\n- [x] Agregar ícono de advertencia junto al mensaje \"Valores fuerda de rango\" en las mediciones de LogsList\n\n- [x] Agregar ícono \"Ayuda\" en el header\n\n  - Ítems: \"¿Cómo me tomo la presión?\", \"¿\"Valores fuera de rango\"?\", \"Tabla de niveles de presión\"\n\n- [x] Reemplazar \"Datos incorrectos\" por \"Valores fuera de rango\" y un ícono de advertencia ⚠\n\n- [x] Agregar confirmación visual luego de que el reporte PDF haya sido generado y esté listo para descargar\n\n- [x] Agregar \"¿Dudas?\" al texto del botón del formulario de contacto -\u003e \"¿Dudas? ¿Sugerencias? ¿Errores? 🙈\"\n\n- [x] Hacer que cada sección (modal) tenga su propia url\n\n- [x] 🐛 Solucionar falta de color de texto seleccionado\n\n- [x] Agregar About y Donate al final del Settings\n\n- [x] Reemplazar subtítulo \"SOBRE MÍ\" por \"CONTACTO\"\n\n- [x] Reemplazar \"Contacto \u0026 Errores\" por \"¿Errores? ¿Sugerencias?\"\n\n- [x] Reemplazar \"Agregar Registro\" por \"Agregar Medición\"\n\n- [x] Reemplazar \"Nuevo registro\" con \"Agregar una medición\"\n\n- [x] Reemplazar \"Aún no se agregaron registros\" con \"Aún no se agregaron mediciones\"\n\n- [x] Ampliar area de clickeo del \"buttonContainer\" en NoLogsMessage para incluír el botón y el texto \"Agregar una medición\"\n\n- [x] Reemplazar el placeholder \"Hola Jonatandb! te escribo para decirte...\" por \"Hola! me gustaría comentar que...\"\n\n- [x] Cuando se le da el foco a un input autoseleccionar todo el contenido (si tiene alguno)\n\n- [x] Agrupar listado por fecha\n\n- [x] Usar date-fns en todo lugar que muestre una fecha\n\n- [x] Corregir/evitar que al abrir los modales se re-descargue el logo\n\n- [x] Hacer sección \"Exportar a PDF\"\n\n- [x] Quitar emojis junto al título de donaciones\n\n- [x] 🐛 Solucionar que al hacer click al lado del botón + flotante, en se abre el modal de Agregar registro\n\n- [x] Que el texto del botón Agregar/Actualizar sea negro (en dark mode: blanco)\n\n- [x] 🐛 Corregir ordenamiento de los logs (Causa: las fechas no tienen los segundos!!)\n\n- [x] Agregar el logo y nombre de la app al modal de Ajustes y agregar el número de versión\n\n- [x] Crear \"BloodPressureLevelsModal.tsx\" (y llamarlo desde Settings), meter dentro el contenido de \"BloodPressureLevels\" (sin el container y el header) para poder luego meter \"BloodPressureLevels\" debajo del textarea de notas en AddEditLog\n\n- [x] Hacer formulario de contacto con envío de mails utilizando EmailJS\n\n- [x] Optimización de imágenes y creación de archivos \"fuente\" PSD\n\n- [x] Agregar color de fondo al hover sobre los medios de contacto en About\n\n- [x] Agregar screenshots\n\n- [x] Poner nombre: MiPresión (Actualizar header)\n\n- [x] Agregar posibilidad de borrar todos los registros\n\n- [x] Hacer sección \"Errores y Contacto\" con opciones de donación\n\n- [x] Corregir estilo de íconos en Settings para que tengan el mismo ancho\n\n- [x] Implementar CSS Modules en Log y Header, ToggleTheme, SettingIcon, Logo\n\n- [x] Usar variables CSS en todos los CSS\n\n- [x] Corregir colores de dark mode\n\n- [x] Implementar CSS Modules en Log y Header, ToggleTheme, SettingIcon, Logo\n\n- [x] Actualizar imports relativos con imports de ruta con @ en Settings\n\n- [x] Hacer refactor para mejorar código en App.tsx con respecto a lógica de modales\n\n- [x] Hacer mensaje para cuando no se crearon registros\n\n  - [x] Eliminar mock data y su dependencia\n\n- [x] Hacer versión responsive\n\n- [x] Hacer sección \"Ajustes\"\n\n- [x] Corregir problema con el botón de agregar, que en cualquier otra resolución se va muy a la derecha y abajo\n\n- [x] Hacer sección \"Niveles de presión arterial\"\n\n- [x] Corregir problema con scroll luego de agregar o editar un registro, la lista de logs queda scrolleada\n\n- [x] Corregir hora por defecto al crear un log, aparece desfazada 3 horas por lo menos\n\n- [x] Hacer sección \"Agregar\"\n\n- [x] Hacer sección \"Editar\"\n\n- [x] Agregar configuración para importaciones absolutas \"@/components/myComponent\"\n\n- [x] Íconos de píldora y lápiz con bordes negros para el tema light\n\n- [x] Contexto para el tema\n\n- [x] Div que envuelva a los íconos de píldora y lápiz, junto con los datos del pulso, para que los íconos queden siempre pegados a la derecha\n\n- [x] Guardado de datos en localStorage\n\n- [x] Usar Vite: npm create vite\n\n---\n\n## 🛠 Herramientas y recursos utilizados:\n\n- [SVG Repo](https://www.svgrepo.com/)\n- [React-PDF](https://react-pdf.org/)\n- [EmailJS](https://emailjs.com)\n- [Conversor de PX a REM](https://nekocalc.com/es/px-a-rem-conversor)\n- [Photopea](https://www.photopea.com/)\n- [Flaticon](https://www.flaticon.com/)\n- [Canva](https://www.canva.com/es_419/)\n- [Free Online PNG to SVG Converter | Adobe Express](https://www.adobe.com/express/feature/image/convert/png-to-svg)\n\n---\n\n## Autor\n\n- Jonatandb - [@jonatandb](https://www.github.com/jonatandb)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonatandb%2Fmipresion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonatandb%2Fmipresion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonatandb%2Fmipresion/lists"}