WeekBalance Docs

Manual de Instalación - WeekBalance

Este manual explica cómo preparar desde cero el entorno de WeekBalance, incluyendo backend (Express + Supabase) y frontend (Expo/React Native).

Requisitos del sistema

Hardware mínimo

  • CPU de 4 núcleos.
  • 8 GB de RAM (16 GB recomendado si emulás dispositivos).
  • 10 GB de espacio libre en disco.

Sistema Operativo

macOS 12+, Windows 10/11 (WSL para backend) o cualquier distro Linux moderna.

Software base

  • Node.js 20.x LTS y npm 10.x.
  • Git 2.40+.
  • Expo Go (en dispositivo físico) o emulador Android/iOS.
  • Supabase CLI (opcional) o acceso a la consola web.

Dependencias necesarias

Backend

  • TypeScript, ts-node-dev
  • @supabase/supabase-js
  • express, cors, node-cron

Frontend

  • Expo SDK 54
  • react-native, react-navigation
  • zustand, react-hook-form
  • Expo LinearGradient, Reanimated

Configuración de variables de entorno

Backend (BackEnd/.env)

PORT=3000
SUPABASE_URL=https://<your-project>.supabase.co
SUPABASE_SERVICE_ROLE_KEY=<service-role-key>
SUPABASE_ANON_KEY=<anon-key>
JWT_SECRET=<cadena_aleatoria>

SUPABASE_SERVICE_ROLE_KEY es la llave de servicio (no compartirla).

Frontend (weekbalance/.env)

EXPO_PUBLIC_API_URL=http://localhost:3000/api
EXPO_PUBLIC_SUPABASE_URL=https://<your-project>.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=<anon-key>

Instalación del backend

  1. Entrá en el directorio: cd BackEnd
  2. Instalá dependencias: npm install
  3. Compilá (opcional): npm run build
  4. Ejecutá en modo desarrollo: npm run dev

Esto expone la API en http://localhost:3000/api.

Instalación del frontend

  1. Entrá en el directorio: cd weekbalance
  2. Instalá dependencias: npm install
  3. Iniciá el servidor Metro: npm start
  4. Elegí plataforma: a para Android, i para iOS, o escaneá el QR con Expo Go.

Configuración de la base de datos

  1. Creá un proyecto en Supabase.
  2. Desde la sección SQL, ejecutá scripts para crear tablas: profiles, accounts, income_history, expense_history, savings_movements.
  3. Habilitá autenticación por correo/contraseña en Supabase Auth.
  4. Copiá las claves (Anon y Service Role) en los .env respectivos.

Ejecución del sistema

  1. Asegurate de que el backend esté corriendo (npm run dev en BackEnd).
  2. Iniciá Expo (npm start en weekbalance).
  3. Abrí la app (emulador o físico). Iniciá sesión o registrate.
  4. Registrá un ingreso y un gasto de prueba.

Verificación de la instalación

  • Desde la consola del backend deberías ver logs de solicitudes.
  • En la app verificá: el balance se actualiza, Ahorros muestra meta inicial, perfil refleja nombre.
  • En Supabase, confirmá que en income_history y expense_history aparecieron los registros.

Solución de problemas comunes

Error de conexión (ECONNREFUSED)

Revisá que el backend esté activo y que EXPO_PUBLIC_API_URL apunte a la dirección correcta.

Token inválido / 401

Asegurate de que las claves Supabase del frontend y backend correspondan al mismo proyecto. Limpia la sesión borrando AsyncStorage.

Expo no detecta dispositivos

Comprobá que tu dispositivo o emulador esté en la misma red; reintentá con adb reverse tcp:3000 tcp:3000 para Android.

Cron jobs no corren

Validá que startWeeklyBalanceCron() se invoque en BackEnd/src/server.ts.

Desinstalación (opcional)

  1. Detené procesos (Ctrl+C en terminales).
  2. Eliminá dependencias: rm -rf BackEnd/node_modules weekbalance/node_modules
  3. Borrá archivos .env si contienen claves sensibles.
  4. Si lo deseás, eliminá el proyecto Supabase desde la consola.