Ejercicio de programación con Python: Proyecto gestor de tareas CRUD
1h 30m
Desarrolla un gestor de tareas en Python con operaciones CRUD, clases Proyecto y Tarea, y filtrado por estado y proyecto.
Crear la estructura del proyecto: Organiza tu proyecto con los siguientes archivos:
models.py
para las clases de entidades,repositories.py
para los repositorios, yapp.py
como script principal.Implementar las entidades: En
models.py
, define la claseProyecto
con atributos como id, nombre, descripción y fecha de creación. Luego, define la claseTarea
con atributos como id, título, descripción, estado (pendiente, en progreso, completada), fecha límite y un identificador del proyecto al que pertenece.Crear los repositorios: En
repositories.py
, implementa las clasesProyectoRepositorio
yTareaRepositorio
que utilicen diccionarios como almacenamiento. Cada repositorio debe implementar métodos para crear, obtener, listar, actualizar y eliminar elementos.Implementar relaciones entre entidades: Añade métodos en
TareaRepositorio
para filtrar tareas por proyecto y por estado. Asegúrate de que al eliminar un proyecto, se eliminen también todas sus tareas asociadas.Añadir validaciones: Implementa validaciones básicas, como comprobar que los campos obligatorios no estén vacíos, que los IDs sean únicos y que las fechas tengan formato correcto.
Desarrollar el script principal: En
app.py
, crea instancias de los repositorios y realiza operaciones CRUD para demostrar todas las funcionalidades. Crea al menos dos proyectos y varias tareas para cada uno, mostrando por consola los resultados de cada operación.Probar las operaciones CRUD: Demuestra la creación, lectura, actualización y eliminación tanto de proyectos como de tareas. Muestra también cómo filtrar tareas por proyecto y por estado.
Implementar manejo de errores: Añade manejo de excepciones para casos como intentar acceder a un elemento que no existe o actualizar con datos inválidos.
Más ejercicios de programación con Python
Evalúa tus conocimientos en Python con más ejercicios de programación de tipo Test, Puzzle, Código y Proyecto con VSCode.
Módulo math
Reto herencia
Excepciones
Introducción a Python
Reto variables
Funciones Python
Reto funciones
Módulo datetime
Reto acumulación
Reto estructuras condicionales
Polimorfismo
Módulo os
Reto métodos dunder
Diccionarios
Reto clases y objetos
Reto operadores
Operadores
Estructuras de control
Funciones lambda
Reto diccionarios
Tecnologías de este ejercicio de programación
Entornos de desarrollo para este ejercicio

Visual Studio Code

GitHub