REST API desarrollada con Flask, utilizando SQLAlchemy como ORM y SQLite como base de datos para la gestión de tareas de usuarios.
Esta aplicación web permite a los usuarios gestionar sus tareas personales a través de una interfaz REST API completa. La aplicación maneja autenticación de usuarios y operaciones CRUD (Crear, Leer, Actualizar, Eliminar) para las tareas.
Ver descripción completa en githubpages Link
La aplicación permite realizar las siguientes operaciones:
git clone https://github.com/rocohen/pfo2-tareas-app
cd pfo2-tareas-app
pip install -r requirements.txt
python servidor.py
El servidor se ejecutará en http://127.0.0.1:5000
La aplicación incluye los siguientes usuarios de prueba:
Usuario | Contraseña |
---|---|
Juan | 1234 |
Ana | 1234 |
Fran | 1234 |
María | 1234 |
POST /login
- Iniciar sesiónPOST /registrar
- Registrar nuevo usuarioGET /logout
- Cerrar sesiónGET /tareas
- Listar todas las tareas del usuarioPOST /tareas
- Crear una nueva tareaPUT /tareas/<id>
- Actualizar una tarea específicaDELETE /tareas/<id>
- Eliminar una tarea específicaLa aplicación soporta respuestas duales:
El tipo de respuesta se determina automáticamente según las cabeceras HTTP de la petición (Accept
).
El proyecto incluye un cliente de consola (cliente.py
) que despliega un menú interactivo para probar todas las funcionalidades de la aplicación.
python servidor.py
python cliente.py
pfo2-tareas-app/
├── intance/
| ├── tarea.db
├── servidor.py # Aplicación principal Flask
├── cliente.py # Cliente de consola
├── requirements.txt # Dependencias del proyecto
├── README.md # Este archivo
├── templates/ # Templates HTML
│ ├── base.html # Template base
│ ├── index.html # Página de inicio/login
│ ├── tareas.html # Dashboard de tareas
| ├── header.html # Template header
│ └── Error/ # Templates de error
│ ├── 404.html # Página no encontrada
│ └── 500.html # Error interno del servidor
└── tareas.db # Base de datos SQLite (generada automáticamente)
curl -X POST http://127.0.0.1:5000/tareas \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"description": "Completar el proyecto", "done": false}' \
-b cookies.txt
curl -X GET http://127.0.0.1:5000/tareas \
-H "Accept: application/json" \
-b cookies.txt
curl -X PUT http://127.0.0.1:5000/tareas/1 \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"description": "Tarea actualizada", "done": true}' \
-b cookies.txt
pip install -r requirements.txt
e inicializar primero servidor.py
antes de ejecutar el clienteEste proyecto fue desarrollado como PFO2 de la materia Programación sobre Redes.
Este proyecto es de uso académico para la materia Programación sobre Redes.