Aplicación web sencilla basada en Flask que implementa un CRUD siguiendo la arquitectura MVC para gestionar empleados en una base de datos MySQL.
- Python 3.11+
- Servidor MySQL accesible y usuario con permisos de lectura/escritura
- Crea y activa un entorno virtual (opcional pero recomendado):
python3 -m venv .venv source .venv/bin/activate
- Instala dependencias:
pip install -r requirements.txt
- Inicializa la base de datos y tabla de empleados:
mysql -u <usuario> -p < sql/schema.sql
- Configura las variables de entorno para conectar con MySQL (o crea un
.env
):export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_DATABASE=empleados_db export MYSQL_USER=root export MYSQL_PASSWORD=tu_password
- Arranca la aplicación:
flask --app main run
- Abre
http://127.0.0.1:5000/employees
en tu navegador para usar el CRUD.
- Ajusta las credenciales en
.env
; dentro del contenedor la app usaMYSQL_HOST=mysql
. - Construye e inicia los servicios Web + MySQL:
docker compose up --build
- Ingresa a
http://127.0.0.1:5000/employees
. - Detén los contenedores cuando termines:
docker compose down
app/models
: Define las entidades de dominio (Employee
).app/repositories
: Acceso a datos usando MySQL (employee_repository
).app/controllers
: Controladores Flask que actúan como capa de presentación.templates
: Vistas HTML (Jinja2) para listar, crear y editar empleados.sql/schema.sql
: Script para crear la base de datos y la tablaemployees
.
- Añadir autenticación básica o middleware de seguridad.
- Incluir validaciones más robustas y manejo de errores global.
- Crear pruebas unitarias e integración para repositorio y controladores.