Sistema de Gestión de Citas para Salones de Belleza con Python + Flask +HTML

- Si es de tu interés este artículo, apoyanos compartiendo en tus redes sociales favoritas y de esa manera también incentivando a tus amigos que crees les pueda interesar a que nos lean.


Sistema de Gestión de Citas para Salones de Belleza con Python + Flask +HTML

 









Introducción

La gestión eficiente de citas es fundamental para cualquier salón de belleza. Este sistema permite a los administradores registrar clientes, gestionar un catálogo de servicios y agendar citas de manera sencilla y organizada.

El sistema está desarrollado con Python y Flask, utilizando archivos de texto para el almacenamiento de datos, lo que lo hace ligero y fácil de mantener sin necesidad de bases de datos.


Tecnologías Utilizadas

  • Python 3: Lenguaje principal para el backend.

  • Flask: Framework para el desarrollo web.

  • HTML + CSS: Diseño y estructura de la interfaz de usuario.

  • Archivos de texto (``): Para el almacenamiento de clientes, servicios y citas.


Características del Sistema

✅ Registro y gestión de clientes.
✅ Catálogo de servicios con precios.
✅ Agendamiento de citas seleccionando cliente y servicio.
✅ Eliminación de citas.
✅ Historial de citas por cliente.
✅ Interfaz moderna con animaciones y colores suaves.


📂 Estructura del Proyecto

📂 Ubicación: Documentos/python/salonBelleza

salonBelleza/
│── app.py                # Archivo principal de la aplicación Flask
│── templates/
│   ├── index.html        # Página para agendar citas
│   ├── citas.html        # Página para ver y eliminar citas
│   ├── agregar_servicio.html # Página para agregar nuevos servicios
│   ├── agregar_cliente.html  # Página para registrar clientes
│   ├── clientes.html     # Página para ver lista de clientes
│   ├── historial_cliente.html # Historial de citas de un cliente
│── static/
│   ├── styles.css        # Archivo CSS con diseño moderno
│── citas.txt             # Archivo donde se almacenan las citas
│── servicios.txt         # Archivo donde se almacenan los servicios
│── clientes.txt          # Archivo donde se almacenan los clientes


📌 Código Completo de los Archivos

📌 **Archivo Principal: **``

from flask import Flask, render_template, request, redirect, url_for

app = Flask(__name__)

CITAS_ARCHIVO = "citas.txt"
SERVICIOS_ARCHIVO = "servicios.txt"
CLIENTES_ARCHIVO = "clientes.txt"

def leer_clientes():
    clientes = []
    try:
        with open(CLIENTES_ARCHIVO, "r") as file:
            for linea in file:
                clientes.append(linea.strip())
    except FileNotFoundError:
        pass
    return clientes

def agregar_cliente(nombre):
    with open(CLIENTES_ARCHIVO, "a") as file:
        file.write(f"{nombre}\n")

def leer_servicios():
    servicios = {}
    try:
        with open(SERVICIOS_ARCHIVO, "r") as file:
            for linea in file:
                nombre, precio = linea.strip().split("|")
                servicios[nombre] = float(precio)
    except FileNotFoundError:
        pass
    return servicios

def agregar_servicio(nombre, precio):
    with open(SERVICIOS_ARCHIVO, "a") as file:
        file.write(f"{nombre}|{precio}\n")

def leer_citas():
    citas = []
    try:
        with open(CITAS_ARCHIVO, "r") as file:
            for linea in file:
                datos = linea.strip().split("|")
                if len(datos) == 4:
                    citas.append({
                        "cliente": datos[0],
                        "servicio": datos[1],
                        "fecha": datos[2],
                        "hora": datos[3]
                    })
    except FileNotFoundError:
        pass
    return citas

def guardar_cita(cliente, servicio, fecha, hora):
    with open(CITAS_ARCHIVO, "a") as file:
        file.write(f"{cliente}|{servicio}|{fecha}|{hora}\n")

def historial_cliente(nombre):
    citas = leer_citas()
    return [c for c in citas if c["cliente"] == nombre]

@app.route("/")
def index():
    servicios = leer_servicios()
    clientes = leer_clientes()
    return render_template("index.html", servicios=servicios, clientes=clientes)

@app.route("/citas")
def mostrar_citas():
    citas = leer_citas()
    return render_template("citas.html", citas=citas)

@app.route("/agregar_cita", methods=["POST"])
def agregar_cita():
    cliente = request.form["cliente"]
    servicio = request.form["servicio"]
    fecha = request.form["fecha"]
    hora = request.form["hora"]
    guardar_cita(cliente, servicio, fecha, hora)
    return redirect(url_for("mostrar_citas"))

@app.route("/agregar_cliente", methods=["GET", "POST"])
def agregar_cliente_view():
    if request.method == "POST":
        nombre = request.form["nombre"]
        agregar_cliente(nombre)
        return redirect(url_for("index"))
    return render_template("agregar_cliente.html")

@app.route("/clientes")
def ver_clientes():
    clientes = leer_clientes()
    return render_template("clientes.html", clientes=clientes)

@app.route("/historial_cliente/<nombre>")
def historial_cliente_view(nombre):
    historial = historial_cliente(nombre)
    return render_template("historial_cliente.html", cliente=nombre, historial=historial)

if __name__ == "__main__":
    app.run(debug=True)


📌 Código Completo de los Archivos HTML

Se incluyen los archivos:

  • index.html

  • citas.html

  • agregar_cliente.html

  • agregar_servicio.html

  • clientes.html

  • historial_cliente.html



No hay comentarios