Skip to content
 
 

Repository files navigation

turnos-api-rest-fastapi

API REST para gestión de Personas, Contactos y Turnos, con reportes descargables en PDF y CSV.

Proyecto académico (UNLa) desarrollado en equipo. Este repositorio es un fork orientado a portfolio (documentación y presentación).


✨ Funcionalidades

  • CRUD de Personas, Contactos y Turnos
  • Consulta de turnos disponibles
  • Reportes PDF (Borb) y CSV (Pandas)
  • Documentación automática con Swagger / OpenAPI

🧰 Tecnologías

  • Python 3.10+
  • FastAPI + Uvicorn
  • SQLite
  • Pandas
  • Borb
  • Postman

✅ Requisitos previos

  • Python 3.10+ instalado
  • pip instalado/actualizado

Ejecutar los comandos desde la carpeta raíz del proyecto.


🚀 Inicio rápido

1) Crear y activar entorno virtual

python -m venv .venv

Windows (PowerShell):

.\.venv\Scripts\Activate.ps1

Linux / macOS:

source .venv/bin/activate

2) Instalar dependencias

pip install -r requirements.txt

3) Ejecutar la API

uvicorn app:app --reload

Acceso

  • Swagger UI: http://127.0.0.1:8000/docs

🧪 Postman

La colección de Postman está en la raíz del proyecto:

  • Postman de Turnos - Grupo 8.postman_collection.json

📚 Endpoints (resumen)

Recursos principales

  • /personas
  • /contactos
  • /turnos
  • /turnos-disponibles

Reportes PDF

  • GET /reportes/pdf/turnos-por-fecha?fecha=YYYY-MM-DD
  • GET /reportes/pdf/turnos-cancelados-por-mes
  • GET /reportes/pdf/turnos-por-persona?dni=12345678
  • GET /reportes/pdf/turnos-cancelados?min=5
  • GET /reportes/pdf/turnos-confirmados?desde=YYYY-MM-DD&hasta=YYYY-MM-DD
  • GET /reportes/pdf/estado-personas?habilitada=true/false

Reportes CSV

  • GET /reportes/csv/turnos-por-fecha?fecha=YYYY-MM-DD
  • GET /reportes/csv/turnos-cancelados-por-mes
  • GET /reportes/csv/turnos-por-persona?dni=12345678
  • GET /reportes/csv/turnos-cancelados?min=5
  • GET /reportes/csv/turnos-confirmados?desde=YYYY-MM-DD&hasta=YYYY-MM-DD
  • GET /reportes/csv/estado-personas?habilitada=true/false

👥 Equipo

  • Micaela Insfran
  • Gaston Madeo
  • Rodrigo Emanuel Sanchez
  • Manuel Shocron

Repositorio original del trabajo grupal (upstream): https://github.com/MicaelaInsfran02/SL-UNLA-LAB-2025-GRUPO-N8


🗂️ Estructura del proyecto

  • app.py → entrada de la API (ruteo / endpoints)
  • models.py → modelos / entidades
  • database.py → conexión / operaciones de base de datos
  • utils.py → utilidades y generación de reportes
  • database.db → base local (SQLite)

About

API REST en FastAPI (Python) para gestión de personas, contactos y turnos, con reportes descargables en PDF y CSV, documentación Swagger/OpenAPI y colección de Postman.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages