TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Habit tracker multiplataforma con TypeScript y Next.js para crear hábitos diarios, registrar avances y visualizar rachas, calendarios y estadísticas, con sincronización entre web, móvil y escritorio.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Habit tracker personal multiplataforma. El desarrollo empezó con una web responsive instalable como PWA en Next.js y ahora avanza hacia la app móvil con Expo; toda la lógica independiente de interfaz se comparte mediante un workspace de pnpm. PLANIFICACION_HABIT_TRACKER.md es la fuente de verdad del alcance y del estado de cada fase. MVP web/PWA v1 (Fases 0–7) completado. Fase 8 (app móvil con Expo) en su tramo final: la app Android funciona contra producción y empieza la beta interna; faltan la prueba en iOS y cerrar la beta.查看完整 README ↗
Habit tracker personal multiplataforma. El desarrollo empezó con una web responsive instalable como PWA en Next.js y ahora avanza hacia la app móvil con Expo; toda la lógica independiente de interfaz se comparte mediante un workspace de pnpm.
PLANIFICACION_HABIT_TRACKER.md es la fuente de verdad del alcance y del estado
de cada fase.
MVP web/PWA v1 (Fases 0–7) completado. Fase 8 (app móvil con Expo) en su tramo final: la app Android funciona contra producción y empieza la beta interna; faltan la prueba en iOS y cerrar la beta.
docs/product
(alcance, historias, wireframes, sistema visual y fixtures)./hoy, /habitos, /calendario,
/estadisticas y /ajustes, con navegación inferior en móvil y lateral en
escritorio, estados vacíos/carga/error y modo claro./verificar
(el enlace del correo sigue funcionando); las rutas privadas validan la identidad en el servidor mediante
el middleware proxy.ts y clientes Supabase separados para navegador y
servidor./auth/callback); si el correo ya tenía cuenta, Google se vincula a ella.
Requiere activar el proveedor en Supabase: ver
docs/setup/SUPABASE.md.docs/decisions/0001-supabase-sync.md):
sin UI optimista, revalidación tras cada mutación y al recuperar foco/conexión,
y migración explícita de los datos locales a la primera cuenta.public/sw.js) con caché
versionado que no almacena respuestas autenticadas, y página offline de solo
lectura (/offline).main); lista de verificación de despliegue y rollback en
docs/setup/DEPLOY.md.@axe-core/playwright): flujo de
hábitos, PWA y flujo Supabase.import_local_data.habit_archive_periods, rellenada por un trigger).reorder_habits.Limitación conocida: sin hardware Apple, la instalación en iOS y el recorrido en Safari quedan sin verificar; es un riesgo aceptado y documentado en la Fase 7 que debe resolverse antes de cerrar el criterio de salida de la Fase 8.
apps/mobile con Expo SDK 57, Expo Router (rutas tipadas) y TypeScript;
reutiliza @habit-tracker/domain y @habit-tracker/database.expo-secure-store.expo-web-browser + PKCE,
vuelta por habittracker://auth/callback), con el mismo cliente OAuth Web que
la web; verificado en local, llega al APK con el próximo build.expo-notifications: hasta 5 por dispositivo, con
hora manual y alarmas exactas en Android 12+.development para desarrollar y preview (APK
independiente contra Supabase de producción) para la beta interna.apps/desktop).packages/design-tokens y packages/ui-web se crearán cuando su fase lo
requiera.corepack enable
corepack install --global [email protected]
pnpm install
Instala siempre desde la raíz del repo, nunca dentro de apps/*.
pnpm supabase:start
pnpm dev
La web queda disponible en http://localhost:3000. Exporta
NEXT_PUBLIC_SUPABASE_URL y NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY con los
valores de pnpm exec supabase status (ver .env.example y
docs/setup/SUPABASE.md).
pnpm supabase:start
cp apps/mobile/.env.example apps/mobile/.env # rellena con `supabase status`
pnpm --filter @habit-tracker/mobile start
Para un teléfono físico usa la IP LAN de tu máquina en vez de localhost.
Detalles, builds de EAS y distribución en
apps/mobile/README.md.
pnpm lint # ESLint en todos los paquetes
pnpm typecheck # todos los paquetes (incluye apps/mobile)
pnpm test # Vitest en todos los paquetes
pnpm test:e2e # build + Playwright de la web
pnpm build # build de producción de la web
La primera ejecución E2E requiere instalar Chromium y sus dependencias:
pnpm --filter @habit-tracker/web exec playwright install --with-deps chromium
Para aplicar o comprobar el formato de Prettier (obligatorio antes de commitear, junto con lint):
pnpm format
pnpm format:check
La revisión de calidad, accesibilidad, rendimiento y deuda conocida del
prototipo está en docs/quality/FASE_5.md.
pnpm supabase:start # levanta la pila local (Docker)
pnpm db:reset # reconstruye la BD desde migraciones + seed
pnpm db:test # pruebas pgTAP de supabase/tests/
pnpm db:lint / pnpm db:advisors
pnpm db:types # regenera packages/database/src/database.types.ts
El login con Google está desactivado en local por defecto
([auth.external.google] enabled = false); para probarlo hacen falta las
credenciales de Google en el .env de la raíz y activarlo solo en tu copia, como
explica docs/setup/SUPABASE.md.
La guía reproducible de base de datos, separación de entornos y variables está en
docs/setup/SUPABASE.md. Usa .env.example
solo como referencia; nunca copies secretos al repositorio y no añadas
SUPABASE_SERVICE_ROLE_KEY (las variables NEXT_PUBLIC_* / EXPO_PUBLIC_*
viajan en el bundle del cliente).
habit_tracker/
├── apps/
│ ├── web/ # Next.js 16 con App Router (PWA desplegada)
│ └── mobile/ # Expo SDK 57 + Expo Router (Fase 8, beta Android)
├── packages/
│ ├── database/ # Tipo Database generado desde Supabase
│ └── domain/ # Entidades Zod, fechas, rachas y métricas (sin UI)
├── supabase/ # config, migraciones, seed y pruebas pgTAP
├── docs/
│ ├── product/ # Alcance, wireframes, sistema visual y fixtures
│ ├── quality/ # Revisión de calidad del prototipo
│ ├── setup/ # Guías de Supabase y despliegue
│ └── decisions/ # ADRs (0001: Supabase como fuente de verdad)
├── package.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
└── PLANIFICACION_HABIT_TRACKER.md
Las carpetas de escritorio (apps/desktop) y los paquetes de UI compartida se
crearán al comenzar sus fases para evitar estructura vacía.
GitHub Actions ejecuta formato, lint, typecheck, pruebas y build en cada pull
request y en los cambios enviados a main.