Aplicación Web de Código Abierto / Open Source para gestionar alimentos, medicamentos, notas, recetas y recursos en emergencias. React + Vite + Zustand + Firebase + Tailwind + Vitest
Agradecemos a todas las personas que han colaborado en el proyecto 🙌
- @Ariel-GonzAguer — Propietario / Mantenedor
- @lianyvar — Colaboradora
- @mvlsqz — Colaborador
- @nadir-ammisaid — Colaborador
- @astrobot-houston — Bot (automatización)
Important
La rama Astro será eliminada definitivamente el 13/09/2025. Si desea continuar con la versión Astro, puede clonar el repo y mantenerla por su cuenta.
- Facilitar la gestión y organización de recursos esenciales en situaciones de emergencia (alimentos, medicamentos, notas, recetas y otros ítems).
- Permitir el acceso y la colaboración de cualquier persona, comunidad o institución, promoviendo el software libre y abierto.
- Ofrecer una interfaz intuitiva, accesible y multiplataforma (web, móvil, escritorio).
- Integrar tecnologías modernas para sincronización en tiempo real, autenticación segura y generación automática de recetas con IA.
- Fomentar la participación y mejora continua por parte de la comunidad.
Este proyecto es Código Abierto bajo licencia AGPL-3. Puede usarlo, modificarlo y compartirlo respetando los términos de la licencia. Aceptamos issues y pull requests.
- Lea:
CONTRIBUTING.md
yCODE_OF_CONDUCT.md
- Lea los archivos en la carpeta
documentacion
. - Licencia:
LICENCE.txt
- Gestión de alimentos, medicamentos, lugares, notas y recetas.
- Sincronización con Firestore y persistencia local (Zustand persist).
- Autenticación con Firebase Auth (email/contraseña).
- Notificaciones (Sonner) y UI responsiva.
- PWA con Vite (instalable en escritorio/móvil).
- Frontend: React 19 + Vite 7 + Tailwind 4
- Estado: Zustand 5 (con Immer)
- Backend/DB: Firebase 12 (Auth + Firestore)
- API IA: Función serverless en
api/openAI_RecipeService.js
(OpenAI) - Calidad: ESLint 9, Vitest 3 (jsdom)
- Deploy: Vercel (vercel.json)
- Clonar e instalar
git clone https://github.com/Ariel-GonzAguer/comidaEmergencia.git
cd comidaEmergencia
npm install
- Configurar variables de entorno
Crear un archivo .env
en la raíz con tus credenciales de Firebase (todas deben empezar con VITE_
):
VITE_FIREBASE_API_KEY=tu_api_key
VITE_FIREBASE_AUTH_DOMAIN=tu_auth_domain
VITE_FIREBASE_PROJECT_ID=tu_project_id
VITE_FIREBASE_STORAGE_BUCKET=tu_storage_bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=tu_messaging_sender_id
VITE_FIREBASE_APP_ID=tu_app_id
# Firestore: documento y colección usados por el servicio
VITE_FIREBASE_DOC=tu_documento
VITE_FIREBASE_COLECCION=tu_coleccion
Para la IA (servicio de recetas) añade la clave solo en el entorno del servidor (local con Vercel o en Vercel Cloud):
OPENAI_API_KEY=tu_clave_openai
- Ejecutar en desarrollo
npm run dev
Opcional/Recomendado (para probar la API serverless localmente):
vercel dev
- Ejecutar pruebas (Vitest):
npm run test
- Lint (ESLint):
npm run lint
- Inicie sesión (Firebase Auth). Si no tiene usuario, configúrelo en su proyecto de Firebase.
- Navegue por las secciones: Comida, Medicamentos, Lugares, Notas y Recetas.
- Generador de Receta IA: ingrese ingredientes y envíe; se hace POST a
/api/openAI_RecipeService
y se muestra la receta. - Guarde y edite datos; se sincronizan con Firestore.
comidaEmergencia/
├── api/ # Funciones serverless (OpenAI)
├── src/
│ ├── componentes/ # UI y navegación
│ ├── paginas/ # Vistas
│ ├── stores/ # Zustand (auth, estado)
│ ├── servicios/ # Firebase/Firestore, Zod
│ ├── firebase/ # Configuración Firebase
│ └── tests/ # Vitest setup
├── documentacion/ # Guías (OpenAI, Firebase, Vercel, etc.)
├── vercel.json
├── vite.config.js
└── eslint.config.js
- Importa el repo en Vercel y deploy automático, o usa CLI:
npm i -g vercel
vercel
- En Vercel, defina variables de entorno (Firebase y
OPENAI_API_KEY
). - Para desarrollo local con API:
vercel dev
.
Detalles en documentacion/vercel.md
.
Primero: Revise CONTRIBUTING.md
para lineamientos y STYLE_GUIDE.md
para estilo de código.
- Fork ➜ rama (
feat/mi-mejora
ofix/mi-bug
). - Cambios con commits claros según la convención del proyecto.
- PR llenando la plantilla.
- Respete el Código de Conducta.
Este proyecto mantiene un historial de cambios detallado siguiendo el estándar Keep a Changelog:
- CHANGELOG.md: Historial completo de versiones y cambios
- Licencia principal: AGPL-3 (
LICENCE.txt
).
Hecho libre para todo el mundo 🌍 — si le sirve, deje una ⭐