SistemaTurnos

📅 Turnify — Sistema de Gestión de Turnos

Sistema web para la gestión de turnos, clientes, servicios y horarios.


📌 Sobre el proyecto

Turnify es una aplicación web desarrollada para facilitar la gestión de turnos de profesionales y pequeños negocios.

El sistema permite administrar información relacionada con usuarios, clientes, servicios, horarios y turnos, centralizando la gestión en una única plataforma.

El proyecto está desarrollado con una arquitectura separada de Frontend y Backend, utilizando una API REST para la comunicación entre ambas partes.


✨ Funcionalidades

👤 Gestión de usuarios

👥 Gestión de clientes

📅 Gestión de turnos

🕐 Gestión de horarios

💼 Gestión de servicios


🏗️ Arquitectura

El proyecto está dividido en dos aplicaciones principales:

SistemaTurnos/
│
├── backend/
│   ├── agentes/
│   ├── configuración/
│   ├── controladores/
│   ├── middleware/
│   ├── prisma/
│   ├── rutas/
│   └── ...
│
├── frontend/
│   ├── public/
│   ├── src/
│   └── ...
│
└── README.md

Frontend

Aplicación desarrollada con React y Vite, encargada de la interfaz de usuario y la interacción con la API.

Backend

API desarrollada con Node.js y Express, encargada de la lógica del sistema, autenticación, gestión de datos y comunicación con la base de datos.

Base de datos

Se utiliza PostgreSQL, gestionada mediante Prisma ORM.


🛠️ Tecnologías utilizadas

Frontend

Backend

Herramientas


🔐 Seguridad y autenticación

El backend implementa autenticación mediante JSON Web Tokens (JWT) y utiliza bcrypt para el manejo seguro de contraseñas.

Además, el sistema utiliza middleware para controlar el acceso a determinadas funcionalidades según el usuario autenticado y sus permisos.

Las variables sensibles y credenciales se gestionan mediante variables de entorno.


🗄️ Modelo de datos

La aplicación utiliza PostgreSQL y Prisma para gestionar diferentes entidades:

Usuario
   │
   ├── Turnos
   └── Horarios

Cliente
   │
   └── Turnos

Servicio
   │
   └── Turnos

Turno
   ├── Cliente
   ├── Servicio
   └── Usuario

Esto permite relacionar usuarios, clientes, servicios, horarios y turnos dentro del sistema.


⚙️ Instalación

1. Clonar el repositorio

git clone https://github.com/RodrigoSanchezUTN/SistemaTurnos.git
cd SistemaTurnos

2. Configurar el Backend

cd backend

Instalar dependencias:

npm install

Crear un archivo .env con las variables necesarias para la aplicación.

Ejemplo:

DATABASE_URL="postgresql://usuario:contraseña@localhost:5432/turnify"
JWT_SECRET="tu_clave_secreta"

Ejecutar las migraciones de Prisma:

npx prisma migrate dev

Iniciar el servidor:

npm run dev

3. Configurar el Frontend

Desde la carpeta principal:

cd frontend

Instalar dependencias:

npm install

Iniciar el entorno de desarrollo:

npm run dev

La aplicación estará disponible en la URL indicada por Vite.


🔄 Flujo general de la aplicación

        Usuario
           │
           ▼
      React / Vite
           │
           │ HTTP
           ▼
       Express API
           │
           ▼
        Prisma ORM
           │
           ▼
       PostgreSQL

📈 Estado del proyecto

🚧 En desarrollo

Turnify continúa evolucionando con nuevas funcionalidades, mejoras de seguridad, experiencia de usuario y optimización de la arquitectura.


🎯 Objetivos


👨‍💻 Autor

Rodrigo Sánchez

Estudiante de Tecnicatura Universitaria en Programación — UTN FRSR.

💼 LinkedIn

🌐 Portfolio

📧 Email


🚀 Turnify — Organiza tus turnos. Simplifica tu trabajo.