Giter Club home page Giter Club logo

personaplus's Introduction

Good morning, afternoon, or night, or whenever you're here. I'm Zaka and I Make Stuff ;]

Featured projects

PersonaPlus Readme Card

PersonaPlus, an app (written in React Native / Expo), designed to give yourself a plus as I like to say. It's essentially a self-care app meant to provide tips, help you create routines, and more.

It's still in a very, VERY early stage, and most stuff isn't even built yet 😅. I'd call it my pilot project.

About me

I'm Zakaria, a 🇪🇸 Spanish UI/UX designer with over 4 years of experience, and lots of practice with HTML & CSS. I'm now learning Lua, TypeScript, and React / React Native. Always looking for the chance to make something epic!

In case you're interested (thank you, btw 😄), yeah, I am available for hire, commissions, or any other work. Sometimes, I don't even ask to be paid, as I'm seeking for working experience and practice.

-- BEGIN STATS NO ONE READS

My stats or something

stats

My top languages

Top Langs

Amount of time spent VSCoding instead of grass touching

Zaka's WakaTime stats

Streaks, as if this was Duolingo

this is not duolingo

-- END STATS NO ONE READS

Cya!

Take care and God bless ya :]

personaplus's People

Contributors

alvaro842dev avatar dependabot[bot] avatar zakahacecosas avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

alvaro842dev

personaplus's Issues

Por hacer - Objetivos pasivos

Objetivos pasivos

Tip

Qué son: Piensa en ellos como "metas", por poner un ejemplo genérico: no fumar. Existen varias apps que actúan como tracker para que tengas cuenta de cuántos días llevas sin fumar. Aunque parezca simple, hacer que no fumar parezca un "juego" o algo por lo que recibes una "recompensa" (dentro de la app) suele tener un efecto positivo, por lo que merece implementarse.

Por hacer:

  • Creación
    • Presets (tipo "No fumar", "No beber alcohol", etc...)
    • Personalizados (por si alguien quiere ponerse de objetivo pasivo "No jugar a Valorant")
  • Edición
  • Eliminación
  • Funcionalidad simple: cada día marcas si has cumplido o no, se suma el contador y ya.
  • Marcar fallos: si un día fallas, se pierde la racha y se reinicia el contador.
  • Implementación con la hora de pensar 1

Footnotes

  1. Véase Hora de pensar

Por hacer - Objetivos activos y sesiones

Objetivos activos

Tip

Qué son: Piensa en apps como Leap Home Workout, donde puedes empezar sesiones de ejercicio físico, siendo la app un "asistente" que te ayuda en el proceso. Esas sesiones vienen, en PersonaPlus, de parte de los objetivos activos.

Por hacer:

  • Creación
  • Marcar como completado
  • Sesiones
    • Funcionalidad básica
      • Temporizador
      • Repeticiones
      • Descansos
      • Salida
        • Rendición
        • Marcado como completado
    • Sesiones múltiples
      • Ayuda básica
      • Ayuda de calidad
      • Sesiones completas
        • Obtención de datos
          • Medidor de kcals quemadas 1
          • Medidores específicos (ej. flexiones realizadas en una sesión, o km recorridos)
        • Guardado de datos
        • Estadísticas 1
      • Sesiones avanzadas / funciones triviales
        • Reproductor (música integrada)
        • Efectos de sonido 2
        • Sesiones encadenadas / Sesiones de micro-ejercicios 3
  • Edición
  • Eliminación
  • Generación vía asistente 4

Footnotes

  1. Vía OpenHealth 2

  2. Sería un detalle muy útil, ya que podrías (probablemente) no mirar el teléfono durante las sesiones. Tendría que diseñarlos yo, ya veré como.

  3. Si te fijas en la app de ejemplo que puse al principio (Leap), esta funciona de forma distinta, siendo una sola sesión un montón de ejercicios "micro" (de no más de 30 segundos normalmente), en lugar de lo que PersonaPlus hace ahora (cada objetivo siendo una sola sesión "macro" que puede durar desde unos pocos segundos a varias horas). La idea a largo plazo es poder elegir entre ambas opciones, pudiendo "encadenar" las sesiones macro para que vayan una detrás de otra, o pudiendo también crear "micro-objetivos activos" (pensaré un mejor nombre) que creen sesiones mucho más parecidas a las vistas en Leap.

  4. No te confundas, asistente != inteligencia artifical.

Por hacer - Asistente de metas

Asistente de metas

Tip

Qué es: La idea es, a futuro, reemplazar el sistema de creación de objetivos con uno más completo, paso a paso, y - sobre todo - con recomendaciones del asistente, y la opción de que el propio asistente cree los objetivos que considera más apropiados.

Note

Aunque la palabra "asistente" te haga pensar en ello, no, no es una IA. Sería un asistente "mecánico" por así decirlo, con una larga lista de presets, los cuales podrá modificar en base a los datos del usuario para ajustarlos a su medida.

Esta función aún requiere de planificación. Más adelante se añadirán aquí tareas concretas para implementarla.

Por hacer - Usuarios y base de datos

Registro de usuarios

Tip

Qué es: La capacidad de los usuarios para insertar sus datos en la app y poder disfrutarla al máximo.

Por hacer:

  • Registro de usuarios
    • Datos básicos
    • Personalización
      • Metas 1
      • Info médica 2
      • Otros
    • Hora de pensar
  • Usuario y base de datos
    • Generación de estadísticas
      • Estadísticas precisas (datos médicos)
    • Generación de informes
    • Consejos
    • Hora de pensar
      • Notificación
      • Formulario funcional
    • Edición del perfil
    • Eliminación de cuenta
    • Copia de seguridad de los datos 3

Footnotes

  1. Sólo visual: todavía no implementado.

  2. Por ejemplo: objetivos activos como carreras no se recomendarán a usuarios que indiquen problemas respiratorios. Es básicamente para lo que sirve esta opción.

  3. Probablemente sea una opción de "exportar datos a archivo", en vez de un sistema de cuentas.

Por hacer - Hora de pensar

La hora de pensar

Tip

Qué es: Una notificación diaria que te invita a reflexionar sobre tu día. Al hacer clic en la notificación, se abre un formulario donde puedes registrar lo que has hecho, qué has comido, si has cumplido con tus objetivos pasivos, entre otros aspectos relevantes para tu bienestar diario.

Por hacer:

  • Creación
    • Configuración de la notificación diaria
    • Diseño del formulario de reflexión diaria
      • Sección para registrar las actividades del día
      • Sección para registrar la alimentación
      • Sección para evaluar el cumplimiento de los objetivos pasivos
    • Personalización del formulario (campos que se pueden activar o desactivar según el usuario)
  • Integración con objetivos pasivos 1
  • Registro de datos y estadísticas
    • Almacenamiento de los datos introducidos
    • Visualización de las estadísticas personales (p. ej., gráficos de progreso)

Footnotes

  1. Véase Objetivos pasivos

Por hacer - misceláneo

Misceláneos

Tip

Qué son: Detalles secundarios, variados, que no son tan importantes pero que pueden hacer que la app se sienta más pulida.

  • Misceláneos
    • Temas para la aplicación (claro, oscuro, etc...).
    • Múltiples idiomas (Castellano, Inglés...).
    • Easter eggs para la app.
    • Efectos de sonido propios.
    • Animaciones de la interfaz.

ERRORES CONOCIDOS

Aquí se muestran todos los errores que conozco y lo que sé de ellos. Lo mantendré actualizado.
Si encuentras un error por tu cuenta, crea tu propia issue y no lo comentes aquí, por favor. Gracias.

  • El deslizamiento no funciona (intentas scrollear y no scrollea)

Important

  • Impacto: Parcial (sólo algunos dispositivos).
  • Origen: El cambio de posición de la navegación (cuando se movió el nav abajo).
    • Commit: 9dd02b6, Versión: b23.
  • Ubicación: Todas las páginas.
  • Solución sugerida: Ninguna (he probado todo y no hay manera).
  • Notas: De momento parece fallar en versiones recientes de Android, mientras que en Android 10, por ejemplo, este error no aparece, funcionando todo bien.
  • Aparece la sección AllObjectivesDone cuando sí que hay objetivos sin hacer que deberían aparecer (renderObjectiveDivision)

Important

  • Impacto: Total.
  • Origen: Algún cambio en la lógica usada para renderizarlos, no sé decir cuál cambio exactamente.
    • Commit: No deducible, Versión: b24.
  • Ubicación: index.tsx.
  • Solución sugerida: Ninguna (también he probado todo y no hay manera).
  • Notas: En el entorno de pruebas (Expo Development Build), al invocar fast refresh (al hacer cambios en el código), curiosamente si que aparecen los objetivos correctamente. Si no es así, no aparecen de ninguna otra forma. Extraño.
  • A veces, la app de repente crashea

Important

  • Impacto: Total.
  • Origen: Ni idea.
    • Commit: No deducible, Versión: No deducible.
  • Ubicación: De momento visto en index.tsx, Dashboard.tsx, Sessions.tsx, y Profile.tsx.
  • Solución sugerida: Ninguna (no sé cuál podrá ser la causa).
  • Notas: En el entorno de pruebas (Expo Development Build) ocurre con más frecuencia que en producción, sobre todo al invocar fast refresh de alguna u otra manera.
  • Cannot read property 'uri' of null no permite ejecutar la app

Important

  • Impacto: Total.
  • Origen: La carga de las tipografías (.ttf). Además, aunque no estoy seguro, podría tener algo que ver con alguna actualización de los paquetes (recientemente migré el proyecto a pnpm, y aunque en general ha beneficiado, han aparecido errores que antes no existían).
    • Commit: No deducible, Versión: b25.
  • Ubicación: _layout.tsx.
  • Solución sugerida: Ninguna (no sé cuál podrá ser la causa).
  • Notas: Se muestra también un warning: Possible unhandled promise rejection (id: 0): TypeError: Cannot read property 'uri' of null. Se sabe que este error está vinculado de alguna forma a la carga de tipografías.
  • JEST no permite ejecutar los tests / fallan todos

Important

  • Impacto: Entorno de desarrollo.
  • Origen: Desconocido, pero probablemente algún paquete.
    • Commit: No deducible, Versión: b25.
  • Ubicación: Supongo que package.json o pnpm-lock.yaml.
  • Solución sugerida: ¿Reinstalar todo hasta que funcione?.
  • Notas: Según alguna que otra búsqueda que he hecho, Babel tendría algo que ver. No sé el que.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.