Sistema de Gestión de Tareas en Python

respondido por OpenAI o1 mini en OpenAI o1

Pregunta:

Desarrolla el siguiente proyecto en colab y proporciona los códigos del siguiente proyecto: Nombre del proyecto en Python es "Sistema de Gestión de Tareas" . Crea una aplicación que permita a los usuarios agregar, eliminar y actualizar tareas. Puedes incluir características como fechas de vencimiento, prioridades y categorías. Desarrollar paso a paso explicando detalladamente como para un principiante que comienza desde cero

Respuesta:

¡Claro! Vamos a desarrollar un "Sistema de Gestión de Tareas" en Python utilizando Google Colab. Este proyecto será una aplicación simple que permitirá a los usuarios agregar, eliminar y actualizar tareas, así como gestionar fechas de vencimiento, prioridades y categorías.

Paso 1: Configuración del Entorno

  1. Abre Google Colab: Ve a Google Colab y crea un nuevo cuaderno (notebook).

  2. Instalación de Bibliotecas: Para este proyecto, utilizaremos pandas para manejar las tareas en forma de tabla. Asegúrate de que pandas esté instalado. En la primera celda de tu cuaderno, escribe lo siguiente y ejecútalo:

    !pip install pandas
    

Paso 2: Crear la Clase Tarea

Vamos a crear una clase Tarea que representará cada tarea en nuestro sistema.

import pandas as pd
from datetime import datetime

class Tarea:
    def __init__(self, descripcion, fecha_vencimiento, prioridad, categoria):
        self.descripcion = descripcion
        self.fecha_vencimiento = fecha_vencimiento
        self.prioridad = prioridad
        self.categoria = categoria
        self.estado = 'Pendiente'  # Estado inicial de la tarea

    def __repr__(self):
        return f"Tarea({self.descripcion}, {self.fecha_vencimiento}, {self.prioridad}, {self.categoria}, {self.estado})"

Paso 3: Crear la Clase GestorTareas

Ahora, crearemos una clase GestorTareas que manejará la lista de tareas.

class GestorTareas:
    def __init__(self):
        self.tareas = []

    def agregar_tarea(self, tarea):
        self.tareas.append(tarea)

    def eliminar_tarea(self, descripcion):
        self.tareas = [tarea for tarea in self.tareas if tarea.descripcion != descripcion]

    def actualizar_tarea(self, descripcion, nueva_descripcion=None, nueva_fecha=None, nueva_prioridad=None, nueva_categoria=None):
        for tarea in self.tareas:
            if tarea.descripcion == descripcion:
                if nueva_descripcion:
                    tarea.descripcion = nueva_descripcion
                if nueva_fecha:
                    tarea.fecha_vencimiento = nueva_fecha
                if nueva_prioridad:
                    tarea.prioridad = nueva_prioridad
                if nueva_categoria:
                    tarea.categoria = nueva_categoria

    def listar_tareas(self):
        return pd.DataFrame([tarea.__dict__ for tarea in self.tareas])

Paso 4: Interacción con el Usuario

Ahora vamos a crear funciones que permitirán a los usuarios interactuar con el sistema.

def menu():
    print("Sistema de Gestión de Tareas")
    print("1. Agregar tarea")
    print("2. Eliminar tarea")
    print("3. Actualizar tarea")
    print("4. Listar tareas")
    print("5. Salir")

def main():
    gestor = GestorTareas()
    
    while True:
        menu()
        opcion = input("Selecciona una opción: ")
        
        if opcion == '1':
            descripcion = input("Descripción de la tarea: ")
            fecha_vencimiento = input("Fecha de vencimiento (YYYY-MM-DD): ")
            prioridad = input("Prioridad (Alta, Media, Baja): ")
            categoria = input("Categoría: ")
            tarea = Tarea(descripcion, fecha_vencimiento, prioridad, categoria)
            gestor.agregar_tarea(tarea)
            print("Tarea agregada.")
        
        elif opcion == '2':
            descripcion = input("Descripción de la tarea a eliminar: ")
            gestor.eliminar_tarea(descripcion)
            print("Tarea eliminada.")
        
        elif opcion == '3':
            descripcion = input("Descripción de la tarea a actualizar: ")
            nueva_descripcion = input("Nueva descripción (dejar en blanco si no se desea cambiar): ")
            nueva_fecha = input("Nueva fecha de vencimiento (dejar en blanco si no se desea cambiar): ")
            nueva_prioridad = input("Nueva prioridad (dejar en blanco si no se desea cambiar): ")
            nueva_categoria = input("Nueva categoría (dejar en blanco si no se desea cambiar): ")
            gestor.actualizar_tarea(descripcion, nueva_descripcion or None, nueva_fecha or None, nueva_prioridad or None, nueva_categoria or None)
            print("Tarea actualizada.")
        
        elif opcion == '4':
            print(gestor.listar_tareas())
        
        elif opcion == '5':
            print("Saliendo del sistema.")
            break
        
        else:
            print("Opción no válida. Intenta de nuevo.")

# Ejecutar el sistema
main()

Paso 5: Ejecutar el Proyecto

  1. Copia y pega todo el código anterior en tu cuaderno de Google Colab.
  2. Ejecuta la celda que contiene la función main() para iniciar el sistema de gestión de tareas.

Explicación del Código

  • Clase Tarea: Define la estructura de una tarea con atributos como descripción, fecha de vencimiento, prioridad, categoría y estado.
  • Clase GestorTareas: Maneja una lista de tareas y proporciona métodos para agregar, eliminar, actualizar y listar tareas.
  • Función menu(): Muestra las opciones disponibles para el usuario.
  • Función main(): Controla el flujo del programa, permitiendo al usuario interactuar con el sistema.

Conclusión

Has creado un sistema básico de gestión de tareas en Python. Puedes expandir este proyecto añadiendo características como la persistencia de datos (guardando las tareas en un archivo), la validación de entradas, o incluso una interfaz gráfica utilizando bibliotecas como Tkinter o PyQt.

¡Espero que esto te haya sido útil! Si tienes alguna pregunta o necesitas más ayuda, no dudes en preguntar.