Tasks Py: Aplicacion para Gestion de Tareas por Hacer con Python y SQlite


Tasks Py es una aplicacion desarrollada en Python para tener un control de tareas por hacer todo desde la terminal usando Python y SQLite.

La aplicacion Tasks Py esta desarrollada para la terminal por lo que para implementar las funciones vamos a tener un menu con las opciones numeradas y en la parte de abajo hay un prompt para escribir el numero de opcion que queremos, despues se ejecutara la opcion es escojamos y de nuevo se mostrara el menu hasta que ejecutemos la opcion salir.

El menu de opciones tiene las siguientes funciones.

  • 1. Ver tareas Pendientes
  • 2. Marcar tarea como finalizada
  • 3. Marcar tarea como pendiente
  • 4. Ver todas las tareas
  • 5. Agrega nueva tarea
  • 6. Eliminar tarea
  • 7. Salir

Codigo

A continuacion el codigo, esta dividido en 2 archivos. install.py que contiene la instalacion y creacion de la base de datos SQLite.

# Powered by Evilnapsis
import sqlite3
con  = sqlite3.connect("tasks.db")
cur = con.cursor()
#cur.execute("drop table task")
print("TASKS SYSTEM")
cur.execute("create table if not exists task (id integer not null primary key, title varchar(255), status int, created_at datetime)")
print("[+] Tabla task")

Y el siguiente codigo es el main.py el cual contiene todas las funciones necesarias para hacer que la aplicacion funcione.

import sqlite3
# Funcion para mostrar el menu
# esta funcion se muestra todo el tiempo
table_name = "tasks.db"
def menu():
    i = 0
    while i!=8:
        print("\n\n-----* TASKS PY *-------")
        print("-----    MENU    -------")
        print("1. Ver Tareas Pendientes")
        print("2. Marcar Tarea Finalizada")
        print("3. Marcar Tarea Pendiente")
        print("4. Ver Todas las Tareas")
        print("5. Agregar Tareas")
        print("6. Eliminar Tarea ")
        print("7. Salir")
        i = input("\nOpcion > ")
        i = int(i)
        print("Opcion seleccionada:  ", i)
        print("------------------------------")
        if i == 1:
            ver_pendientes()
        elif i==2:
            marcar_finalizado()
        elif i==3:
            marcar_pendiente()
        elif i==4:
            ver_tareas()
        elif i==5:
            agregar_tarea()
        elif i==6:
            eliminar_tarea()
        elif i==7:
            print("-- [ Powered by Evilnapsis] --")
            exit()
# Funcion para ver las tareas
def ver_pendientes():
    print("\n\n---- VER TAREAS PENDIENTES -----")
    con = sqlite3.connect(table_name)
    cursor = con.cursor()
    cursor2 = con.cursor()
    rows = cursor.execute("select * from task where status=0")
    print("ID  |  TAREA | ESTADO ")
    for r in rows:
        status = "PENDIENTE"
        if r[2]==1:
            status="FINALIZADO"
        print(r[0], "  |  ", r[1], " | ", status)
    con.commit()
    print("------------------------\n\n")
    menu() # Regresar al menu principal
# Funcion para marcar las tareas como finalizadas
def marcar_finalizado():
    print ("\n\n----- MARCAR TAREA COMO FINALIZADA ----")
    id_product = input("Id de la Tarea > ")
    id_product = str(id_product)
    con = sqlite3.connect(table_name)
    valores = (id_product)
    con.execute("update task set status=1 where id=?", valores)
    con.commit()
    print("[+] Agregado exitosamente!")
    print("------------------------\n\n")
    menu() # Regresar al menu Principal
# Funcion para Marcar las tareas como pendientes
def marcar_pendiente():
    print ("\n\n----- MARCAR TAREA COMO PENDIENTE ----")
    id_product = input("Id de la Tarea > ")
    id_product = str(id_product)
    con = sqlite3.connect(table_name)
    valores = (id_product)
    con.execute("update task set status=0 where id=?", valores)
    con.commit()
    print("[+] Agregado exitosamente!")
    print("------------------------\n\n")
    menu() # Regresar al menu Principal
# Funcion para agregar una tarea a la base de datos
def agregar_tarea():
    print ("\n\n----- AGREGAR TAREA ----")
    title = input("Descripcion de la Tarea > ")
    title = str(title)
    con = sqlite3.connect(table_name)
    valores = (title, 0, "NOW()")
    con.execute("insert into task (title, status,created_at) values (?,?,?)", valores)
    con.commit()
    print("[+] Agregado exitosamente!")
    print("------------------------\n\n")
    menu() # Regresar al menu Principal
# Funcion para ver tareas
def ver_tareas():
    print("\n\n---- VER TODAS LAS TAREAS -----")
    con = sqlite3.connect(table_name)
    cursor = con.cursor()
    rows = cursor.execute("select * from task")
    print("ID  |  TAREA | ESTADO ")
    for r in rows:
        status="PENDIENTE"
        if r[2]==1:
            status="FINALIZADO"
        print(r[0], "  |  ", r[1], " | ", status)
    con.commit()
    print("------------------------\n\n")
    menu() # Regresar al menu principal
# Funcion para eliminar tareas de la BD
def eliminar_tarea():
    print ("\n\n----- ELIMINAR TAREA ----")
    id_task = input("Id de la Tarea > ")
    id_task = str(id_task)
    con = sqlite3.connect(table_name)
    cursor = con.cursor()
    cursor.execute("delete from task where id=?", (id_task))
    con.commit()
    print("[-] Eliminado exitosamente!")
    print("------------------------\n\n")
    menu() # Regresar al menu Principal
# Llamar al menu por primera vez
menu()

Para hacer funcionar el script tenemos que ejecutar primero el archivo install.py

py install.py

Y despues ya ejecutar el archivo main.py.

py main.py

Si instalaste todo bien entonces te va a salir el menu tal como se muestra en la imagen del principio.

Descargar

Si guiqres descargar los archivos puedes usar el siguiente enlace.

Link: https://www.dropbox.com/s/j24bz0pp7lyur4i/tasks-py.zip?dl=0

Leave a comment