Refugio 🐾 Este sistema es una plataforma inteligente de gestión integral diseñada para refugios de animales modernos. No se limita a ser una base de datos estática; es un ecosistema digital que utiliza Machine Learning para analizar el historial de cada rescatado.
A través de una arquitectura robusta con Supabase y Docker, el sistema centraliza la información médica, comportamental y logística. El núcleo del proyecto es un modelo predictivo desarrollado en Python que evalúa las probabilidades de adopción en tiempo real, permitiendo a los administradores tomar decisiones basadas en datos y no solo en intuición.
Características • Instalación • Análisis de Datos • API • Despliegue
Proporcionar una herramienta administrativa eficiente que permita gestionar el ciclo de vida de los animales (ingreso, seguimiento médico, socialización y adopción) y la programación de jornadas de rescate o visitas, garantizando la integridad de los datos mediante una arquitectura moderna, segura y escalable.
La gráfica presenta el destino final de los animales en el refugio, dividida en cuatro categorías: Adoption (Adopción), Transfer (Transferencia), Return to Owner (Regreso al dueño) y At Risk (En riesgo).
- Hallazgos Principales (Insights) Dominio de la Adopción (49%): Casi la mitad de los casos resultan en adopciones exitosas (54,387 animales). Esto es positivo, ya que el modelo tiene suficientes ejemplos para aprender qué hace que un animal sea "adoptable".
Transferencias Relevantes (28.2%): Un volumen alto de animales es trasladado a otras organizaciones. Esto sugiere que el refugio colabora activamente con otras redes.
Desequilibrio Crítico en "At Risk" (3.7%): Esta es la clase minoritaria (solo 4,120 casos). Técnicamente, esto significa que el modelo podría tener dificultades para predecir cuándo un animal está en riesgo real, ya que tiene muy pocos ejemplos en comparación con las adopciones.
Regreso al Dueño (19.1%): Aproximadamente 1 de cada 5 animales se pierde y logra reencontrarse con su familia original.
---1. Optimización del "Flujo de Vida" Animal
Intervención Proactiva: Al identificar animales con baja probabilidad de adopción desde el día 1, el refugio puede asignarles recursos especiales (entrenamiento, mejores fotos, publicidad pagada) antes de que se vuelvan "residentes de larga estancia".
Gestión de Expectativas: Permite al personal saber de antemano qué animales tienen más probabilidades de ser devueltos o transferidos, preparando mejor a los futuros dueños.
Toma de Decisiones Basada en Evidencia
Identificación de Patrones Ocultos: Quizás el refugio no había notado que ciertos colores o razas en combinación con una edad específica tienen dificultades para ser adoptados. El modelo revela estas correlaciones automáticamente.
Validación de Resultados: Mediante la Matriz de Confusión, puedes demostrar con números qué tan confiables son las predicciones, lo cual es vital para solicitar fondos o donaciones.
Eficiencia en el Uso de Recursos Limitados
Ahorro en Mantenimiento: Cada día que un animal pasa en el refugio tiene un costo (comida, limpieza, salud). Reducir el promedio de días de estancia mediante predicciones acertadas libera presupuesto para rescatar a más animales.
Planificación de Espacio: Si el modelo predice una ola de "Retornos al dueño" o "Transferencias", el administrador puede prever espacios vacíos para nuevas emergencias.
Mejora en la Tasa de Éxito de Adopciones
Reducción de Reingresos: Al entender qué factores llevan a un "At Risk" (En Riesgo), el refugio puede ser más estricto en los filtros de adopción para esos casos específicos, asegurando que el animal no sufra el trauma de ser devuelto.
Segmentación de Adoptantes: Puedes usar los perfiles que el modelo marca como exitosos para buscar familias que encajen perfectamente con las necesidades de cada animal.
| Categoría | Tecnologías |
|---|---|
| Runtime | Python 3.10+ |
| Base de Datos | Supabase (PostgreSQL) |
| Contenerización | Docker, Docker Compose |
| Servidor ASGI | Streamlit |
1️⃣ Clonar el repositorio
git clone [Refugio ](https://github.com/Bootcamp-IA-P6/Project_6_team3_Classification.git)Configurar variables de entorno Crea un archivo .env en la raíz del proyecto con tus credenciales de Supabase:
- SUPABASE_URL=tu_url_de_supabase
- SUPABASE_KEY=tu_anon_key
- DATABASE_URL=postgresql://postgres:password@db.supabase.co:5432/postgres
3️⃣ Instalar dependencias
uv sync4️⃣ Ejecutar la aplicación
uv run streamlit run src/app.pyEl proyecto está completamente preparado para entornos de contenedores, lo que garantiza que funcione de manera idéntica en cualquier máquina.
Dockerfile: Configura la imagen base de Python, instala dependencias y optimiza el entorno de ejecución.
Docker Compose: Orquesta el backend, mapea los puertos (8000:8000) y carga automáticamente las variables de entorno.
### Construir la imagen
docker-compose build
### Levantar el sistema
docker-compose up -d📁 Estructura del Proyecto/ Refugio animals
# 📂 Estructura del Proyecto: Refugio de Animales
Este proyecto sigue una arquitectura modular para garantizar la reproducibilidad y el orden en el entrenamiento del modelo.
```text
PROJECT_6_TEAM3_CLASSIFICATION/
├── 📁 .github/ # Automatizaciones y flujos de trabajo de GitHub Actions
├── 📁 .venv/ # Entorno virtual de Python (librerías aisladas)
├── 📁 data/ # Datasets del refugio (Raw, Processed, Intermediary)
├── 📁 models/ # Modelos entrenados (.pkl, .h5) listos para producción
├── 📁 notebooks/ # Cuadernos de Jupyter (.ipynb) para análisis y pruebas
├── 📁 reports/ # Gráficos, matrices de confusión y reportes finales
├── 📁 src/ # Código fuente modular (limpieza de datos, entrenamiento)
├── 📁 tests/ # Pruebas unitarias para asegurar que el código no falle
├── 📄 .gitignore # Archivos que Git debe ignorar (como el .venv)
├── 📄 .python-version # Define la versión específica de Python utilizada
├── 📄 main.py # Punto de entrada principal para ejecutar el modelo
├── 📄 pyproject.toml # Configuración de dependencias y herramientas del proyecto
├── 📄 README.md # Documentación general del proyecto
└── 📄 uv.lock # Archivo de bloqueo para la gestión exacta de dependencias (UV)
npm run dev (o el comando equivalente en Python):
uvicorn app:app --reload: Inicia el servidor de desarrollo.
pytest: Ejecuta la suite de pruebas.
docker-compose up: Levanta la infraestructura completa.
###👩💻 Equipo de Desarrollo Raul - Naiza - Michel - Gabriela
Nuestro propósito es darle voz a los datos para salvar vidas. Somos los encargados de leer lo que los números nos dicen sobre el bienestar animal y traducirlo en acciones claras que el personal del refugio pueda ejecutar.
- Gabriela Hernandez (Scrum Master)
- Raul Machaca (Product Owner)
- Michelle Gelves (Developer)
- Naizabeth Bermudez (Developer)
- Python 3.x
- uv instalado
Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Mac/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh- Clona el repositorio:
git clone https://github.com/tu-usuario/tu-repo.git
cd tu-repo- Crea el entorno virtual:
uv venv- Activa el entorno virtual:
Windows PowerShell:
.\.venv\Scripts\Activate.ps1Mac/Linux o Git Bash:
source .venv/Scripts/activate- Instala las dependencias:
uv sync