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.pyY despues ya ejecutar el archivo main.py.
py main.pySi instalaste todo bien entonces te va a salir el menu tal como se muestra en la imagen del principio.
Si tambien quieres manejar un inventario facil mira Inventory Py: Aplicacion para Inventario sencillo con Python y Sqlite. Ya tendras 2 scripts con Sqlite!
Descargar
Si guiqres descargar los archivos puedes usar el siguiente enlace.
Link: https://www.dropbox.com/s/j24bz0pp7lyur4i/tasks-py.zip?dl=0