TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.