Proyecto Final

Desarrollar una Aplicación de Gestión de Tareas

En este proyecto final, desarrollaremos una simple aplicación de gestión de tareas en Python. Esta aplicación permitirá a los usuarios agregar, ver y eliminar tareas. Utilizaremos conceptos básicos de Python como listas, funciones, manejo de archivos y la entrada/salida del usuario.

Estructura del Proyecto

  1. Estructura de Archivos:

				
					gestion_tareas/
├── app.py
├── tareas.py
└── data.txt

				
			
  1. Archivo tareas.py: Definirá las funciones para agregar, ver y eliminar tareas.

  2. Archivo app.py: Implementará la interfaz de usuario de la consola y usará las funciones definidas en tareas.py.

  3. Archivo data.txt: Almacenará las tareas.

Código de Ejemplo

tareas.py

				
					# funciones para manejar las tareas

def agregar_tarea(tarea):
    with open("data.txt", "a") as file:
        file.write(tarea + "\n")

def ver_tareas():
    with open("data.txt", "r") as file:
        tareas = file.readlines()
    return [tarea.strip() for tarea in tareas]

def eliminar_tarea(tarea):
    tareas = ver_tareas()
    if tarea in tareas:
        tareas.remove(tarea)
        with open("data.txt", "w") as file:
            for t in tareas:
                file.write(t + "\n")
        return True
    return False

				
			
  1. app.py

				
					from tareas import agregar_tarea, ver_tareas, eliminar_tarea

def mostrar_menu():
    print("Gestión de Tareas")
    print("1. Ver Tareas")
    print("2. Agregar Tarea")
    print("3. Eliminar Tarea")
    print("4. Salir")

def main():
    while True:
        mostrar_menu()
        opcion = input("Seleccione una opción: ")

        if opcion == "1":
            tareas = ver_tareas()
            print("\nTareas:")
            for idx, tarea in enumerate(tareas, 1):
                print(f"{idx}. {tarea}")
            print()

        elif opcion == "2":
            tarea = input("Ingrese la nueva tarea: ")
            agregar_tarea(tarea)
            print("Tarea agregada!\n")

        elif opcion == "3":
            tarea = input("Ingrese la tarea a eliminar: ")
            if eliminar_tarea(tarea):
                print("Tarea eliminada!\n")
            else:
                print("Tarea no encontrada!\n")

        elif opcion == "4":
            print("Saliendo de la aplicación.")
            break

        else:
            print("Opción no válida, por favor intente de nuevo.\n")

if __name__ == "__main__":
    main()

				
			

Explicación

tareas.py

  • agregar_tarea(tarea): Abre el archivo data.txt en modo append y escribe la nueva tarea en una nueva línea.
  • ver_tareas(): Abre el archivo data.txt en modo lectura, lee todas las líneas, y las devuelve como una lista de cadenas (eliminando los caracteres de nueva línea).
  • eliminar_tarea(tarea): Lee todas las tareas, elimina la tarea especificada si existe, y reescribe el archivo con las tareas restantes.

app.py

  • mostrar_menu(): Imprime las opciones del menú para el usuario.
  • main(): Función principal que ejecuta un bucle infinito, mostrando el menú y solicitando la opción del usuario. Dependiendo de la opción seleccionada, llama a las funciones adecuadas en tareas.py para ver, agregar o eliminar tareas. El bucle se rompe si el usuario elige salir.

Resumen

Este proyecto proporciona una aplicación básica de gestión de tareas, demostrando cómo utilizar conceptos fundamentales de Python como listas, funciones, manejo de archivos y la entrada/salida del usuario. La aplicación permite agregar, ver y eliminar tareas almacenadas en un archivo de texto, proporcionando una base sólida para expandir y mejorar con características adicionales en el futuro.