SaaS de fitness impulsado por IA que genera rutinas de entrenamiento y dietas personalizadas.
- Rutinas personalizadas con Gemini 1.5 Flash
- Dietas adaptadas a cultura argentina (asado light, mate, milanesas veganas)
- Modelo freemium: 1 generación/mes gratis, ilimitado con Premium ($5-10/mes)
- i18n: Español e Inglés
- Métricas flexibles: kg/cm o lb/ft
- Dashboard interactivo con gráficos de progreso
| Frontend | Backend | Database | AI | Payments |
|---|---|---|---|---|
| React 19 | Firebase Functions | Firestore | Gemini 1.5 Flash | Stripe |
| Vite | Node.js | Firebase Auth | ||
| TailwindCSS | Firebase Storage | |||
| Framer Motion |
# Clonar repositorio
git clone https://github.com/tu-usuario/fitai-personal.git
cd fitai-personal
# Instalar dependencias
npm install
cd functions && npm install && cd ..
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales Firebase- Crear proyecto en Firebase Console
- Habilitar Authentication (Email/Password + Google)
- Crear base de datos Firestore
- Configurar Cloud Functions
- Agregar secretos:
firebase functions:secrets:set GEMINI_API_KEY firebase functions:secrets:set STRIPE_SECRET_KEY firebase functions:secrets:set STRIPE_WEBHOOK_SECRET
# Frontend
npm run dev
# Functions (emulador)
cd functions
npm run serve# Build frontend
npm run build
# Deploy todo
firebase deploy
# Solo hosting
firebase deploy --only hosting
# Solo functions
firebase deploy --only functionsfitai-personal/
├── src/
│ ├── pages/ # Login, Dashboard, Onboarding, Settings
│ ├── context/ # AuthContext
│ ├── config/ # Firebase config
│ ├── locales/ # i18n (es, en)
│ └── App.jsx
├── functions/
│ ├── handlers/ # generateRoutine, generateDiet, stripeWebhook
│ └── index.js
├── firestore.rules
└── firebase.json
VITE_FIREBASE_API_KEY=
VITE_FIREBASE_AUTH_DOMAIN=
VITE_FIREBASE_PROJECT_ID=
VITE_FIREBASE_STORAGE_BUCKET=
VITE_FIREBASE_MESSAGING_SENDER_ID=
VITE_FIREBASE_APP_ID=
VITE_FUNCTIONS_URL=https://us-central1-TU_PROYECTO.cloudfunctions.netusers: Estado suscripción, isPremiumprofiles: Datos usuario (edad, peso, altura, objetivo)routines: Rutinas generadas por IAdiets: Planes nutricionales generados
- En Hostinger DNS, agregar registro A apuntando a IP de Firebase Hosting
- Verificar dominio en Firebase Console
- Esperar propagación DNS (hasta 48h)
MIT