Skip to content

Repository files navigation

Banner conceptual de Lumapse: «Tus ideas no esperan al Wi-Fi». Capturá, agrupá y conectá.

Ilustración conceptual: la visualización de conexiones no forma parte de la beta actual.

Icono de Lumapse Lumapse

App móvil minimalista de captura de notas y gestión del conocimiento personal.
Offline-first · Markdown · SQLite · Sin fricción.

Estado del proyecto Hito actual Licencia Conventional Commits

Lumapse en uso

Recorrido general en video

lumapse-recorrido-general-v0.5.0.mp4

Un recorrido de un minuto por la captura y consulta de notas, la organización por materias, el calendario académico y los modos claro y oscuro.

Capturas principales

Captura rápida de una nota en Lumapse Organización por materias y secciones en Lumapse Calendario y próximas fechas académicas en Lumapse
Captura rápida Materias y secciones Calendario académico

¿Qué es Lumapse?

Lumapse es una aplicación móvil Android empaquetada con Capacitor, diseñada para que estudiantes de nivel superior puedan capturar, organizar y recuperar notas de estudio de forma rápida y offline-first.

Lumapse se enfoca en una fricción concreta: para parte del público relevado, las herramientas disponibles resultan demasiado complejas, dependen de una cuenta o no se adaptan bien al uso cotidiano con conectividad irregular. La beta se distribuye como APK Android, guarda los datos localmente con SQLite y prioriza los flujos sin conexión.

¿Por qué "Lumapse"? El nombre es un neologismo que fusiona Lumen (claridad, captura sin fricción) y Synapse (conexión, conocimiento interconectado). Leer la historia completa →

Nota sobre la arquitectura: Lumapse fue concebida inicialmente como una PWA. El relevamiento con 120 respuestas válidas respaldó las prioridades mobile-first y offline-first: el 72.5% eligió el celular y el 81.7% respondió “A veces”, “Raramente” o “Nunca” ante la pregunta por acceso estable a internet en el instituto. La encuesta no comparó PWA con APK. El empaquetado Android con Capacitor y la migración a SQLite se resolvieron mediante el análisis técnico documentado en ADR-005 y ADR-006.


Stack Tecnológico

Capa Tecnología Motivo
Build Vite 6 Estándar de la industria, HMR, configuración mínima
Lenguaje JavaScript (ES2022+) + TypeScript gradual JS sigue siendo la base; TypeScript entra por contratos y módulos puros para mejorar mantenibilidad
Persistencia actual SQLite (vía @capacitor-community/sqlite) Robusta, relacional, offline-first y alineada con ADR-006
Simulación web SQLite sql.js + jeep-sqlite Permite desarrollo y tests locales manteniendo el mismo modelo de datos
Empaquetado Android Capacitor + Android Distribuye la UI web en un contenedor Android híbrido y expone plugins nativos
Markdown marked + DOMPurify Renderizado de texto enriquecido con sanitización XSS
Estilos CSS nativo / Custom Properties Sin dependencias externas, máximo control
Tests Vitest Suite unitaria implementada para servicios, store y componentes críticos
CI / Quality Gate GitHub Actions + scripts locales Lint, tests, build, bundle budget, trazabilidad, schema, DBML, links, jerarquía, a11y y guardia contra diálogos nativos
Control de versiones Git + GitHub Seguimiento del proyecto, GitHub Projects
Commits Conventional Commits Historial legible y estandarizado

Levantar el entorno de desarrollo

Descargar beta Android

La beta controlada actual está publicada en GitHub Releases:

Lumapse v0.5.0

Descargar el asset firmado lumapse-v0.5.0.apk. No usar artefactos unsigned, que solo se conservan como evidencia técnica local.

v0.5.0 es la segunda beta firmada. Incorpora las correcciones de seguridad, integridad, coordinación SQLite, manejo de errores y usabilidad táctil desarrolladas y validadas después de v0.4.8.

SHA-256 del APK publicado:

d48338e04021a6096fcaeaced5fde411911d403c9ea95407891d2b034515a884

Requisitos previos — Web (desarrollo y contribución)

Herramienta Versión requerida Verificar con
Node.js v22.20.0 node --version
npm v10.9.3 npm --version
Git v2+ git --version
# 1. Clonar el repositorio
git clone https://github.com/jdfesa/lumapse.git
cd lumapse

# 2. Activar el entorno canónico (ejemplo con nvm ya instalado)
nvm install
nvm use
npm run check:runtime

# 3. Instalar exactamente las dependencias del lockfile
npm ci

# 4. Iniciar servidor de desarrollo
npm run dev

# 5. Verificar calidad antes de solicitar revisión
npm run verify

El servidor corre en http://localhost:5173 con Hot Module Replacement activo.

La línea canónica es Node 22.20.0 con npm 10.9.3, fijada en .nvmrc, engines y packageManager, coincidente con la Mac utilizada para los gates de v0.5.0. check:runtime no necesita dependencias instaladas: el procedimiento y CI lo invocan antes de npm ci, y los lifecycles vuelven a comprobarlo al instalar, probar, desarrollar o compilar. Se puede usar otro gestor que respete esas versiones exactas; no se modifica el Node global automáticamente. Node 26 no está soportado y NODE_OPTIONS no forma parte del procedimiento canónico.

Compilación Android (APK)

Para compilar el .apk con el corte actual se requiere Android Studio, JDK 21 y Android SDK 36. La guía completa de instalación, dispositivos de prueba y flujo de trabajo está en:

📱 docs/flujo-desarrollo-android.md


Estructura del proyecto

lumapse/
├── src/                    # Código fuente de la aplicación
│   ├── components/         # Componentes UI organizados por feature
│   │   ├── academic-events/ # Calendario, heatmap y fechas académicas
│   │   ├── about/           # Sección Acerca de
│   │   ├── backup/         # Vista UI del backup manual
│   │   ├── common/         # ConfirmDialog, Toast y piezas transversales
│   │   ├── feed/           # Listado, tarjetas, acciones y papelera
│   │   ├── markdown/       # Preview y estilos Markdown compartidos
│   │   └── note-editor/    # Editor, borradores, comandos y popups
│   ├── config/             # Metadatos/configuración de aplicación
│   ├── domain/             # Contratos y tipos de dominio
│   ├── layout/             # Shell, drawer y navegación
│   ├── services/           # Reglas, flujos, adaptadores y SQLite
│   ├── store/              # Estado de la aplicación (NoteStore)
│   ├── styles/             # CSS modular
│   └── main.js             # Punto de entrada
├── android/                # Proyecto Android nativo (generado por Capacitor)
├── public/                 # Assets estáticos
│   └── icons/              # Iconos de la aplicación
├── scripts/                # Scripts utilitarios y de automatización local
├── analisis-relevamiento/  # Análisis de datos del relevamiento (Python)
│   ├── datos/              # CSV con respuestas crudas
│   ├── scripts/            # Pipeline modular de análisis
│   └── graficos/           # Gráficos generados (12 archivos)
├── docs/                   # Documentación del proyecto
│   ├── adr/                # Architecture Decision Records (9 ADRs)
│   ├── diagramas/          # Diagramas UML (Mermaid)
│   ├── gestion/            # Estimación, planificación y control de avance
│   ├── hitos/              # Informes de avance mensuales
│   ├── informe-final/      # Capítulos fuente del informe académico final (PP3)
│   ├── inspiracion/        # Benchmarking e ideas UX/UI externas
│   ├── producto/           # Design Thinking, requisitos, HU y encuesta
│   └── flujo-desarrollo-android.md  # Guía operativa: build, deploy, scrcpy
├── .github/                # Automatización y templates de GitHub
│   ├── workflows/          # CI: Quality Gate en cada push/PR
│   ├── ISSUE_TEMPLATE/     # Templates para issues (features y bugs)
│   └── PULL_REQUEST_TEMPLATE.md
├── index.html              # Punto de entrada HTML de la aplicación
├── capacitor.config.json   # Configuración de Capacitor (appId, webDir)
├── vite.config.js          # Configuración de Vite (build tool)
├── eslint.config.js        # Configuración de ESLint (reglas de calidad)
├── package.json            # Dependencias y scripts del proyecto
├── README.md               # Documentación principal
├── CONTRIBUTING.md         # Reglas de contribución, ramas y estándares
├── CHANGELOG.md            # Registro histórico de cambios y versiones
├── BACKLOG.md              # Deuda técnica y tareas pendientes por hacer
└── LICENSE                 # Licencia legal Copyleft (GNU GPLv3)

Roadmap

✅ Hito 00 — Investigación y Anteproyecto (Abril 2026) → Informe

Concepción del proyecto, investigación académica y diseño de los instrumentos de relevamiento.

  • Inicialización del repositorio Git con identidad académica
  • Anteproyecto formal para PP3
  • Documentación de producto: personas, lean canvas (Design Thinking)
  • Historias de usuario iniciales (HU-001 a HU-005)
  • Diagramas UML: casos de uso, secuencia, modelo de dominio
  • Plan de recolección de datos y metodología estadística
  • Diseño y refinamiento de la encuesta de relevamiento

✅ Hito 01 — Fundación (Mayo 2026) → Informe

Establecer los cimientos técnicos, organizativos y de investigación del proyecto.

  • Inicialización del repositorio Git con estructura profesional
  • Configuración de Vite 6 como build tool
  • Sistema de diseño base: design tokens, tipografía, paleta de colores
  • index.html — punto de entrada con meta tags y theme-color
  • src/main.js — bootstrap de la aplicación
  • src/styles/main.css — estilos base con CSS Custom Properties
  • Architecture Decision Records: ADR-001 a ADR-004
  • Documentación de producto: personas, requisitos funcionales y no funcionales, historias de usuario, Lean Canvas, análisis competitivo
  • Relevamiento de datos: diseño de encuesta, metodología muestral, 121 respuestas recolectadas y 120 válidas
  • Análisis cuantitativo y cualitativo de resultados (informe)
  • Decisión de pivote de PWA a aplicación Android híbrida con Capacitor + SQLite (ADR-005)

✅ Hito 02 — Core del Editor (Junio 2026) → Informe

Construir el corazón funcional de la aplicación: editor de notas con persistencia local.

  • NoteService: capa de persistencia CRUD con IndexedDB (vía idb)
  • NoteStore: gestor de estado reactivo (patrón Observer)
  • Componente NoteList: barra lateral con listado de notas
  • Componente NoteEditor: editor de título y contenido
  • Auto-guardado final del corte original, reemplazado después por borradores locales y confirmación explícita (RF-005)
  • Eliminación de notas con confirmación de seguridad

Nota: Este hito se implementó con IndexedDB como capa de persistencia inicial. La migración a SQLite se ejecuta posteriormente durante el Hito 04, tras el pivote documentado en ADR-005 y formalizado técnicamente en ADR-006.

✅ Hito 03 — Markdown, Offline y MVP Inicial (Julio 2026) → Informe

Completar el producto mínimo viable de captura y lectura de notas con Markdown y funcionamiento offline.

  • Renderizado de Markdown en tiempo real (marked + DOMPurify)
  • Soporte de sintaxis: encabezados, negritas, listas, código, enlaces
  • Modo edición / modo lectura (toggle)
  • Servicios base de exportación/importación Markdown; la portabilidad verificable se separa luego entre nota individual futura y backups ZIP de workspace
  • Funcionamiento offline bajo la arquitectura original PWA/IndexedDB

✅ Hito 04 — Organización y UX Móvil (Agosto 2026) → Informe

Implementar el modelo de organización respaldado por el relevamiento y optimizar la experiencia móvil.

  • Integración Capacitor y generación del proyecto Android
  • Migración de persistencia: IndexedDB → SQLite (@capacitor-community/sqlite)
  • Estructura de navegación: Entrada / Materias / Archivo / Papelera
  • Creación y edición de materias y secciones
  • Asignación y movimiento de notas entre Entrada y Materias
  • Archivado/restauración de materias y secciones con cascadas transaccionales
  • Búsqueda por texto, modo claro/oscuro, focus mode y diálogos personalizados
  • Empty states pulidos para feed, materias, búsqueda, archivo y fechas sin notas
  • Cierre formal 2026-06-01: RF-006, RF-022, RF-024, coach marks y guía Markdown se postergan o descartan para MVP por decisión de diseño, evitando ruido visual y falsas expectativas de sincronización
  • Tarea diferida para el cierre documental final: actualización de gráficos de base de datos

✅ Hito 05 — Testing, Calidad y Distribución (planificado para Septiembre 2026, cerrado) → Informe de cierre

Garantizó la calidad del código y preparó la primera distribución controlada del producto.

  • Suite de tests unitarios con Vitest y quality gate local
  • GitHub Actions CI — Quality Gate
  • Smoke tests nativos Android bajo com.lumapse.app
  • Borradores persistentes del editor para continuar notas tras cambiar de app o consultar PDFs (RF-005)
  • Backup manual .zip externo con salida por share sheet/gestor de archivos (RF-017)
  • Importación de backup .zip generado por Lumapse con preview y política no destructiva (RF-018)
  • Sección "Acerca de" con versión, autor, licencia y alcance offline/local (RF-023)
  • Fechas académicas discretas integradas al calendario existente (RF-027)
  • Editor enriquecido con slash commands, botón +, formato Aa, callouts y modo enfoque dedicado (RF-028)
  • Validación inicial en Samsung Galaxy S20 FE con Android 13
  • Generación, firma y publicación de lumapse-v0.4.8.apk
  • Cierre sin bugs bloqueantes; Mover a y rendimiento con más notas quedan como observaciones menores para la validación final

🔄 Hito 06 — Entrega Final (planificado para Octubre 2026, activo) → Informe inicial

Cerrar el proyecto con documentación coherente, evidencia final y presentación académica, sin ampliar el producto.

  • Segunda beta v0.5.0 publicada con AUD-001 a AUD-007, mejoras táctiles y versionado Android 0.5.0/500
  • Revisión editorial y congelamiento de la documentación técnica y académica
  • Gráficos de base de datos regenerados y verificados contra el schema real; resta validar su maquetación en PDF y diapositivas
  • Quality gate del corte aprobado con 67 archivos y 1065 tests; resta completar la matriz RNF y la instalación manual del asset firmado cuando el dispositivo lo permita
  • Decisión explícita sobre la línea base académica final: conservar v0.5.0 como referencia de defensa o publicar un corte estable posterior
  • Preparación de presentación, demo y respuestas para el tribunal evaluador

Nota sobre la planificación: Los meses asociados a cada hito constituyen estimaciones formuladas al inicio del proyecto. El desarrollo es iterativo: los plazos pueden ajustarse al profundizar la complejidad o aparecer hallazgos que cambian el alcance. El relevamiento por conveniencia aportó evidencia para priorizar móvil, offline y organización por materias; las decisiones de plataforma se justifican por separado en los ADR técnicos. El avance real se registra en los informes de hito, el Changelog y el historial de commits.


Investigación de Producto

Paralelamente al desarrollo se realizó un relevamiento con potenciales usuarios para contrastar hipótesis y ajustar requisitos. La encuesta aporta evidencia declarativa; la validación directa del prototipo con usuarios permanece en Hito 06.

Actividad Estado Documentación
Diseño de la encuesta ✅ Completado relevamiento-datos.md
Metodología muestral y cálculo de muestra ✅ Completado metodologia-muestral.md
Ejecución de la encuesta (recolección de respuestas) ✅ Completado encuesta/README.md
Análisis de resultados y conclusiones ✅ Completado resultados-relevamiento.md

Nota: Los resultados de la encuesta retroalimentaron los requisitos funcionales y las prioridades del roadmap. Ver las conclusiones y recomendaciones para un resumen de los hallazgos principales.


Documentación técnica


Metodología

Lumapse sigue un enfoque ágil, iterativo e incremental, con gestión del flujo basada en Kanban adaptado a un proyecto individual. No se presenta como Scrum —no utiliza Sprints ni su conjunto completo de responsabilidades, eventos y artefactos— ni como RUP —no organiza el ciclo según sus fases y disciplinas—.

GitHub Projects visualiza el flujo:

Backlog → En Curso → En Revisión → Hecho

El WIP vigente es de dos elementos activos en total entre En Curso y En Revisión. Cada elemento debe tener objetivo, criterio de cierre y evidencia trazable; puede estar respaldado por un issue de GitHub, un ítem del proyecto o una tarea versionada. Los hitos son cortes académicos y de entrega, no Sprints. Ver ADR-003 y la Definition of Workflow.

El historial de commits sigue el estándar Conventional Commits.


Información Académica

  • Materia: Prácticas Profesionalizantes III
  • Alumno: Sandoval, José David Fernando
  • Profesor: Ing. Parada, Mauricio
  • Tutora: Prof. Jaquet, Melina Daiana
  • Institución: IES 6023 'Dr. Alfredo Loutaif'
  • Año: 2026

Desarrollado en el marco de la materia Prácticas Profesionalizantes III · IES 6023 'Dr. Alfredo Loutaif' · 2026

About

A minimalist, offline-first Android app for students: fast note capture, course organization, and academic planning. Built with Capacitor and SQLite.

Topics

Resources

Contributing

Stars

15 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages