Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/FranksGP/Gestor_de_tareas/llms.txt

Use this file to discover all available pages before exploring further.

Gestor de Tareas is a lightweight, interactive command-line task manager written in Python by Jorge Hernández, Dissel Leal, and Frank Garzón. Designed for developers and power users who prefer the terminal over graphical apps, it gives you a clean numbered menu to manage your daily tasks without ever leaving the console. All tasks are automatically saved to a local JSON file, so your data persists between sessions with zero configuration. Because it relies exclusively on Python’s standard library, you can clone the repository and start using it immediately — no virtual environments, no pip install, no setup overhead.

Features

The four core operations of Gestor de Tareas cover the complete lifecycle of a task, from creation through completion and removal.

Add Tasks

Create a new task by supplying a title and a description. Each task is appended to the JSON store and confirmed with a success message via agregarTask.

List Tasks

Display every saved task with its index, title, description, and current status — either ✔ Completada or ✘ Pendiente — using listarTask.

Mark Complete

Select a task by its index to flip its completed flag to True and persist the change instantly via tareaCompletada.

Delete Tasks

Remove a task permanently from the JSON store by index. The delete_task function prints the deleted task’s title so you always know what was removed.

How it works

The entire application is driven by a single main function that runs a continuous while True loop, printing the menu on every iteration and waiting for user input. When the user types a number between 1 and 4, the corresponding function is called — agregarTask, listarTask, tareaCompletada, or delete_task. Each of those functions delegates to two low-level helpers that handle persistence:
  • cargarTask() — reads Tareas.json from disk using json.load. If the file does not yet exist, or if it contains malformed JSON, it safely returns an empty list.
  • guardarTask(tasks) — serialises the full in-memory task list back to Tareas.json with json.dump and 4-space indentation, overwriting the previous file on every write.
Selecting option 5 prints "Saliendo..." and calls break, exiting the loop and terminating the process cleanly. There is no background process, daemon, or network socket involved — the program is fully synchronous and single-threaded.

Requirements

Gestor de Tareas has a minimal footprint by design. You need:
  • Python 3.13 or newer — the only runtime dependency.
  • json and os — both are part of Python’s standard library and are imported at the top of index.py. No third-party packages are required.
Python 3.13+ is required. Older versions of Python 3 will likely work in practice, but the project targets 3.13 and that is the only version that has been validated. Run python --version before getting started to confirm your environment.

Project structure

Gestor de Tareas consists of just two files you need to know about:
Gestor_de_tareas/
├── index.py        # All application logic — functions and the main menu loop
└── Tareas.json     # Auto-generated task store (created on first save)
Tareas.json is created automatically the first time you add a task. A typical file looks like this after adding two tasks:
[
    {
        "titulo": "Comprar víveres",
        "descripcion": "Leche, pan y huevos",
        "completed": false
    },
    {
        "titulo": "Revisar correos",
        "descripcion": "Responder correos pendientes del trabajo",
        "completed": true
    }
]
The full set of functions defined in index.py is:
FunctionResponsibility
cargarTask()Load tasks from Tareas.json; return [] on missing or corrupt file
guardarTask(tasks)Serialise and overwrite Tareas.json with the current task list
agregarTask(titulo, descripcion)Append a new task dict and save
listarTask()Print all tasks with index and status badge
tareaCompletada(index)Set completed = True on the task at the given 1-based index
delete_task(index)Remove the task at the given 1-based index and save
main()Run the interactive menu loop

Build docs developers (and LLMs) love