Gemini said
This project asks you to build a Mini Task Manager entirely within the Linux terminal using Bash. Think of it as building a lightweight "Trello" or "Todoist" that lives in your command line and stores data in a simple text file.
Here is a concise breakdown of what you need to build:
? Core Functionality (The CRUD)
Your script must handle five primary actions through an interactive, numbered menu:
Create: Generate tasks with an auto-incrementing ID.
Read: Display tasks in a clean table (with filtering options).
Update: Edit existing task details or change their status.
Delete: Remove a task (with a "Are you sure?" confirmation).
Search: Find tasks based on keywords in the title.
? Data & Reporting
Instead of a database, you will use a delimited text file (like tasks.txt). You also need to build logic to generate:
Summaries: Count how many tasks are "pending" vs. "done."
Overdue Alerts: Identify tasks where the due date is in the past.
Priority Grouping: Show tasks organized by High, Medium, and Low.
? Script Requirements
To ensure the script is robust, you must implement:
Input Validation: Ensure dates are formatted correctly (YYYY−MM−DD) and that priority levels match the three allowed categories.
Logic Tools: Use awk for formatting tables, sed for editing lines in the text file, and grep for searching.
Organization: The script should be modular, using functions for each menu option to keep the code clean.
? Bonus Goals
If you want to go the extra mile, you can add:
Visuals: Use ANSI colors (e.g., Red for High priority, Green for Done).
Exports: A feature to save the task list as a .csv file.
Sorting: The ability to view tasks ordered by their due date.