Aplicación móvil de entrenamiento y disciplina construida con React Native y Expo.
MENS es una aplicación de fitness que permite a los usuarios:
- Crear y gestionar rutinas de entrenamiento personalizadas
- Registrar sesiones de entrenamiento con seguimiento de series, peso y repeticiones
- Ver métricas de progreso y estadísticas
- Sistema de disciplina con racha de entrenamiento
- Soporte multiidioma (Español/Inglés)
- Perfil de usuario con logros y progreso
Asegúrate de tener instalado:
-
Clona el repositorio
git clone <URL_DEL_REPOSITORIO> cd mens-app
-
Instala las dependencias
npm install
-
Configura Firebase
Crea un archivo
firebaseConfig.tsensrc/config/con tu configuración de Firebase:import { initializeApp } from 'firebase/app'; import { getAuth } from 'firebase/auth'; import { getFirestore } from 'firebase/firestore'; const firebaseConfig = { apiKey: "TU_API_KEY", authDomain: "TU_AUTH_DOMAIN", projectId: "TU_PROJECT_ID", storageBucket: "TU_STORAGE_BUCKET", messagingSenderId: "TU_MESSAGING_SENDER_ID", appId: "TU_APP_ID" }; const app = initializeApp(firebaseConfig); export const auth = getAuth(app); export const db = getFirestore(app);
⚠️ IMPORTANTE: Solicita las credenciales de Firebase al administrador del proyecto. Este archivo NO debe subirse a Git. -
Inicia el servidor de desarrollo
npm start
-
Abre la app
- Escanea el código QR con Expo Go (Android) o la cámara (iOS)
- O presiona
apara Android emulator /ipara iOS simulator
mens-app/
├── app/ # Rutas y pantallas (Expo Router)
│ ├── (auth)/ # Pantallas de autenticación
│ ├── (tabs)/ # Pantallas principales con tabs
│ ├── routines/ # Gestión de rutinas
│ └── _layout.tsx # Layout principal
├── src/
│ ├── components/ # Componentes reutilizables
│ │ ├── common/ # Componentes genéricos
│ │ ├── specific/ # Componentes específicos
│ │ ├── profile/ # Componentes del perfil
│ │ └── workout/ # Componentes de entrenamiento
│ ├── config/ # Configuración (Firebase, etc.)
│ ├── hooks/ # Custom hooks
│ ├── locales/ # Traducciones (i18n)
│ ├── services/ # Servicios (Firebase, API)
│ ├── types/ # TypeScript types
│ └── utils/ # Utilidades
└── assets/ # Imágenes, fuentes, etc.
- React Native - Framework móvil
- Expo - Plataforma de desarrollo
- TypeScript - Tipado estático
- Firebase - Backend (Auth + Firestore)
- Expo Router - Navegación basada en archivos
- React Native Reanimated - Animaciones
- i18next - Internacionalización
- Login con email/password
- Registro de nuevos usuarios
- Recuperación de contraseña
- Crear rutinas personalizadas
- Editor manual de ejercicios
- Asignar días de la semana
- Marcar rutina como "Plan Actual"
- Registrar sesiones de entrenamiento
- Seguimiento de series, peso y repeticiones
- Overlay de entrenamiento activo
- Historial de entrenamientos
- Estadísticas de usuario
- Sistema de logros
- Métricas de progreso (racha, volumen, mejora semanal)
- Configuración de idioma
users/
{userId}/
- email
- displayName
- createdAt
- language
routines/
{routineId}/
- userId
- name
- days[]
- isCurrentPlan
- createdAt
workouts/
{workoutId}/
- userId
- routineId
- date
- exercises[]
- totalVolume
Asegúrate de que las reglas de Firestore permitan:
- Usuarios solo pueden leer/escribir sus propios datos
- Autenticación requerida para todas las operaciones
# Iniciar desarrollo
npm start
# Limpiar caché
npm start -- --clear
# Ejecutar en Android
npm run android
# Ejecutar en iOS
npm run ios
# Ejecutar linter
npm run lint
# Build de producción
npx expo build:android
npx expo build:ios-
Crea una rama para tu feature
git checkout -b feature/nombre-feature
-
Haz commits descriptivos
git add . git commit -m "feat: descripción del cambio"
-
Sube tu rama
git push origin feature/nombre-feature
-
Crea un Pull Request en GitHub para revisión
feat:- Nueva funcionalidadfix:- Corrección de bugsrefactor:- Refactorización de códigostyle:- Cambios de estilo/formatodocs:- Documentacióntest:- Tests
- Verifica que
firebaseConfig.tsexista y tenga las credenciales correctas
- Ejecuta
npm installnuevamente - Limpia caché:
npm start -- --clear
- Presiona
ren la terminal para recargar - Cierra y vuelve a abrir Expo Go
Para dudas o problemas, contacta al equipo de desarrollo.
Proyecto privado - Todos los derechos reservados