Sistema de Gestión de Tareas en Python

Answered using OpenAI o1 mini by OpenAI o1

Question:

Puedes optimizar, aumentar mas características y que tenga una buena presentación para el usuario con detalles decorativos que impresione a la vista. 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

Answer:

¡Claro! Vamos a desarrollar un "Sistema de Gestión de Tareas" en Python utilizando Google Colab. Este proyecto incluirá características como agregar, eliminar y actualizar tareas, así como la gestión de fechas de vencimiento, prioridades y categorías. A continuación, te guiaré paso a paso.

Paso 1: Configuración del Entorno

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

  2. Instalación de Bibliotecas: Para este proyecto, utilizaremos pandas para manejar las tareas en forma de DataFrame. Ejecuta el siguiente código en una celda:

    !pip install pandas
    

Paso 2: Importar Bibliotecas

En la siguiente celda, importaremos las bibliotecas necesarias:

import pandas as pd
from datetime import datetime

Paso 3: Crear la Clase Tarea

Vamos a crear una clase Tarea que contendrá la información de cada tarea.

class Tarea:
    def __init__(self, nombre, fecha_vencimiento, prioridad, categoria):
        self.nombre = nombre
        self.fecha_vencimiento = fecha_vencimiento
        self.prioridad = prioridad
        self.categoria = categoria
        self.estado = 'Pendiente'
    
    def __repr__(self):
        return f"Tarea(nombre='{self.nombre}', fecha_vencimiento='{self.fecha_vencimiento}', prioridad='{self.prioridad}', categoria='{self.categoria}', estado='{self.estado}')"

Paso 4: 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, nombre):
        self.tareas = [tarea for tarea in self.tareas if tarea.nombre != nombre]
    
    def actualizar_tarea(self, nombre, nueva_tarea):
        for i, tarea in enumerate(self.tareas):
            if tarea.nombre == nombre:
                self.tareas[i] = nueva_tarea
                break
    
    def mostrar_tareas(self):
        return pd.DataFrame([vars(tarea) for tarea in self.tareas])

Paso 5: Interacción con el Usuario

Ahora, vamos a crear funciones para interactuar con el usuario. Esto incluirá agregar, eliminar y actualizar tareas.

def menu():
    gestor = GestorTareas()
    
    while True:
        print("\n--- Sistema de Gestión de Tareas ---")
        print("1. Agregar tarea")
        print("2. Eliminar tarea")
        print("3. Actualizar tarea")
        print("4. Mostrar tareas")
        print("5. Salir")
        
        opcion = input("Selecciona una opción: ")
        
        if opcion == '1':
            nombre = input("Nombre de la tarea: ")
            fecha_vencimiento = input("Fecha de vencimiento (YYYY-MM-DD): ")
            prioridad = input("Prioridad (Alta, Media, Baja): ")
            categoria = input("Categoría: ")
            tarea = Tarea(nombre, fecha_vencimiento, prioridad, categoria)
            gestor.agregar_tarea(tarea)
            print("Tarea agregada.")
        
        elif opcion == '2':
            nombre = input("Nombre de la tarea a eliminar: ")
            gestor.eliminar_tarea(nombre)
            print("Tarea eliminada.")
        
        elif opcion == '3':
            nombre = input("Nombre de la tarea a actualizar: ")
            nueva_nombre = input("Nuevo nombre de la tarea: ")
            nueva_fecha_vencimiento = input("Nueva fecha de vencimiento (YYYY-MM-DD): ")
            nueva_prioridad = input("Nueva prioridad (Alta, Media, Baja): ")
            nueva_categoria = input("Nueva categoría: ")
            nueva_tarea = Tarea(nueva_nombre, nueva_fecha_vencimiento, nueva_prioridad, nueva_categoria)
            gestor.actualizar_tarea(nombre, nueva_tarea)
            print("Tarea actualizada.")
        
        elif opcion == '4':
            print(gestor.mostrar_tareas())
        
        elif opcion == '5':
            print("Saliendo del sistema.")
            break
        
        else:
            print("Opción no válida. Intenta de nuevo.")

Paso 6: Ejecutar el Menú

Finalmente, ejecuta el menú para interactuar con el sistema de gestión de tareas.

menu()

Detalles Decorativos

Para hacer que la presentación sea más atractiva, puedes agregar colores y estilos utilizando bibliotecas como rich o colorama, pero ten en cuenta que Google Colab tiene limitaciones en cuanto a la personalización de la salida de texto. Sin embargo, puedes usar emojis o caracteres especiales para hacer que la salida sea más visual.

Ejemplo de Salida

Cuando ejecutes el menú, verás algo como esto:

--- Sistema de Gestión de Tareas ---
1. Agregar tarea
2. Eliminar tarea
3. Actualizar tarea
4. Mostrar tareas
5. Salir
Selecciona una opción: 1
Nombre de la tarea: Estudiar Python
Fecha de vencimiento (YYYY-MM-DD): 2023-10-30
Prioridad (Alta, Media, Baja): Alta
Categoría: Estudio
Tarea agregada.

Conclusión

¡Y eso es todo! Has creado un sistema básico de gestión de tareas en Python. Puedes expandir este proyecto añadiendo más características, como la persistencia de datos (guardando las tareas en un archivo), o incluso una interfaz gráfica utilizando bibliotecas como tkinter o streamlit. ¡Diviértete programando!