Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mi Veterinaria - ERP & CRM Clínico

Django PostgreSQL JavaScript Bootstrap

Plataforma Full Stack desarrollada para la administración integral de centros veterinarios. El sistema digitaliza el agendamiento de citas, el historial clínico de pacientes y las analíticas de negocio, garantizando la integridad de los datos mediante transacciones atómicas en bases de datos relacionales.


Características Técnicas Destacadas

  • Arquitectura de Roles (RBAC): Vistas y permisos estrictamente separados para Clientes, Veterinarios y Jefatura.
  • Seguridad Transaccional: Prevención de Race Conditions en la generación de Fichas Clínicas utilizando transaction.atomic() y secuencias nativas de PostgreSQL.
  • Búsqueda AJAX en Tiempo Real: Motor de autocompletado y validación de usuarios implementado con JavaScript (Debouncing) y la Fetch API para optimizar las consultas al servidor.
  • Algoritmo de Validación: Integración del algoritmo Módulo 11 en Frontend y Backend para validar la autenticidad de los RUT chilenos.
  • Cálculo Dinámico (Propiedades): Eliminación de redundancia de datos calculando la edad de los pacientes en tiempo real (años y meses) mediante propiedades @property en el ORM.

Demostración del Sistema

Ver Demo: Portal Público y Navegación Principal

Exhibición de la página de inicio, carrusel automatizado con consumo asíncrono de APIs externas (The Cat API / Dog CEO API) y navegación responsiva.

index-demo-01
Ver Demo: Registro de Clientes Nuevos

Formulario de registro con validación asíncrona mediante JavaScript (Debouncing) y Fetch API para comprobar disponibilidad de RUT, correo y nombre de usuario en tiempo real.

creacion-cliente-demo
Ver Demo: Registro de Mascotas

Módulo de autogestión donde el cliente puede dar de alta a sus mascotas. El sistema calcula la edad exacta dinámicamente en el backend mediante propiedades del ORM.

crear-mascota-demo
Ver Demo: Proceso de Agendamiento de Citas

Flujo completo para reservar una atención médica en línea, seleccionando sucursales, servicios y profesionales disponibles según bloques de tiempo regulados.

agendar-demo
Ver Demo: Intranet Médica (Vista Veterinario)

Panel privado del cuerpo médico. Incluye la agenda diaria, buscador predictivo de pacientes por RUT y acceso al historial clínico cronológico (Línea de tiempo).

vista-vet-demo
Ver Demo: Dashboard Analítico de Administración (Jefatura) y Catálogo en Vivo

Muestra el panel gerencial con métricas financieras operativas (Sum, Count, Avg) y el flujo dinámico de actualización de la plataforma:

Paso A: Gestión en Intranet Administrativa

Creación y alta de un nuevo servicio médico desde el panel privado de Jefatura.

dashboard-admin-demo

Paso B: Reflejo Inmediato en Portal Público

Actualización en tiempo real del catálogo clínico en la página principal, demostrando la persistencia de datos y la renderización dinámica del ORM.

index-demo-02

Tecnologías Utilizadas

  • Backend: Python 3, Django (Arquitectura MVT)
  • Base de Datos: PostgreSQL
  • Frontend: HTML5, CSS3, Bootstrap 5, JavaScript Vanilla (ES6+)
  • Integraciones: The Cat API & Dog CEO API (Consumo asíncrono frontend)

Instalación y Despliegue Local

Sigue estos pasos para ejecutar el proyecto en tu entorno local:

1. Clonar el repositorio

git clone https://github.com/friveramm/veterinaria_web.git
cd veterinaria_web

2. Crear y activar el entorno virtual

python3 -m venv .venv

# Linux/macOS
source .venv/bin/activate

# Windows
.venv\Scripts\activate

3. Instalar dependencias

pip install -r requirements.txt

4. Configurar la base de datos

Asegúrate de tener PostgreSQL ejecutándose localmente. Crea una base de datos y actualiza las credenciales correspondientes en settings.py.

Luego aplica las migraciones:

python manage.py makemigrations
python manage.py migrate

5. Configurar secuencia nativa de PostgreSQL

Abre la consola de PostgreSQL y ejecuta la siguiente instrucción SQL para habilitar la numeración segura de fichas:

CREATE SEQUENCE IF NOT EXISTS gestion_ficha_n_ficha_seq START WITH 1;

6. Ejecutar el servidor

python manage.py runserver

Una vez iniciado el servidor, podrás acceder a la aplicación desde:

http://127.0.0.1:8000/

Créditos y Atribuciones

About

Plataforma Full Stack (ERP/CRM) para la gestión veterinaria desarrollada con Django, PostgreSQL y JavaScript asíncrono (AJAX).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages