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
- Entrá en el directorio:
cd BackEnd - Instalá dependencias:
npm install - Compilá (opcional):
npm run build - Ejecutá en modo desarrollo:
npm run dev
Esto expone la API en http://localhost:3000/api.
Instalación del frontend
- Entrá en el directorio:
cd weekbalance - Instalá dependencias:
npm install - Iniciá el servidor Metro:
npm start -
Elegí plataforma:
apara Android,ipara iOS, o escaneá el QR con Expo Go.
Configuración de la base de datos
- Creá un proyecto en Supabase.
-
Desde la sección SQL, ejecutá scripts para crear tablas:
profiles,accounts,income_history,expense_history,savings_movements. - Habilitá autenticación por correo/contraseña en Supabase Auth.
-
Copiá las claves (Anon y Service Role) en los
.envrespectivos.
Ejecución del sistema
-
Asegurate de que el backend esté corriendo (
npm run devenBackEnd). - Iniciá Expo (
npm startenweekbalance). - Abrí la app (emulador o físico). Iniciá sesión o registrate.
- 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_historyyexpense_historyaparecieron 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)
- Detené procesos (
Ctrl+Cen terminales). -
Eliminá dependencias:
rm -rf BackEnd/node_modules weekbalance/node_modules - Borrá archivos
.envsi contienen claves sensibles. - Si lo deseás, eliminá el proyecto Supabase desde la consola.