Este proyecto es una plataforma integral para la gestión de una clínica veterinaria, desarrollada como parte de la cátedra de Ingeniería de Software II de la Facultad de Informática (UNLP). La aplicación permite la gestión de turnos, historias clínicas, campañas de donación, adopciones y comunicación directa con los clientes.
- Frontend: Angular 15, Bootstrap 5, Leaflet (Mapas).
- Backend: Python 3.9, Flask, SQLAlchemy.
- Base de Datos: MySQL 8.0.
- Infraestructura: Docker & Docker Compose (Entorno unificado).
El desarrollo del producto se basó en estándares de la industria, priorizando la comunicación con el cliente y la adaptabilidad ante cambios.
- Entrevistas con el Cliente: El proceso inició con sesiones de relevamiento para entender las necesidades del negocio.
- Historias de Usuario (HUs): Se definieron HUs claras que representaban el valor de negocio. Estas fueron gestionadas a través de Pivotal Tracker, permitiendo un seguimiento riguroso del estado de cada funcionalidad.
Adoptamos un marco de trabajo ágil con las siguientes características:
- Sprints y Demos: Ciclos de 2 a 3 semanas que culminaban en una Demo Obligatoria con el cliente (ayudante de cátedra), donde se validaba el incremento de software.
- Sincronización Semanal: Reuniones periódicas para reportar avances, mitigar riesgos y ajustar detalles técnicos o de diseño.
- Scrum Master Rotativo: Cada ciclo, un miembro del equipo asumía el rol de Scrum Master, siendo responsable de:
- Redactar informes semanales de planificación.
- Documentar el progreso y los impedimentos surgidos.
- Flujo de Aceptación:
- Asignación de HU -> Desarrollo -> Marcado como Finalizado.
- En la Demo, el cliente aceptaba o rechazaba la tarea.
- Las tareas rechazadas reingresaban al flujo para su corrección y re-presentación.
El proyecto está completamente contenerizado para asegurar que el entorno sea idéntico en cualquier máquina.
Podes ejecutar este proyecto de dos maneras:
- Hace click en el botón Code (verde) y selecciona la pestaña Codespaces
- Hace click en Create codespaces on main
- Una vez que abra el entorno, ejecuta en la terminal
docker-compose up --build
- Cuando Codespaces te notifique que los puertos están disponibles, asegúrate en la pestaña Ports de que la visibilidad de los puertos
4200y5000sea Public.
-
Asegurate de tener instalado Docker y Docker Compose.
-
Clona el repositorio:
git clone https://github.com/tu-usuario/OhMyDog-Fullstack.git cd OhMyDog-Fullstack -
Levanta los servicios
docker-compose up --build
-
Acceder a los servicios:
- Frontend: http://localhost:4200
- Backend: http://localhost:5000/api
Para facilitar la evaluación del sistema, el entorno Docker incluye un proceso automático de Seeding. Al iniciar por primera vez, la base de datos se poblará automáticamente con:
- Usuarios Administradores y Clientes (Credenciales: admin@ohmydog.com / admin123).
- Mascotas registradas con sus respectivas vacunas e historias clínicas.
- Turnos pendientes y aceptados.
- Campañas de donación activas con montos ya recaudados.
- Veterinarias geolocalizadas visibles en el mapa.
La solución utiliza un Proxy Inverso configurado en el servidor de desarrollo de Angular para redirigir las peticiones /api al contenedor de Flask, resolviendo de forma nativa los problemas de CORS y facilitando la comunicación entre servicios en la red interna de Docker.
Autores: Franco Kumichel, Antonio Felix Glorioso Ceretti, Nicolas De Rose