An AI-powered task management application that allows you to manage your tasks using natural language. Built with Streamlit, Groq, and SQLite.
- Natural Language Processing: Interact with your task manager using natural language
- Task Management: Add, update, and view tasks with ease
- Smart Organization: Tasks are automatically categorized and organized
- Task Reports: Generate detailed reports of your tasks
- Responsive UI: Clean and intuitive web interface
- Data Persistence: All tasks are stored in a SQLite database
- Python 3.8+
- Groq API key (Get it from Groq Cloud)
-
Clone the repository:
git clone https://github.com/yourusername/ai-task-manager.git cd ai-task-manager
-
Create and activate a virtual environment:
uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
uv sync
-
Create a
.env
file and add your Groq API key:cp .env.example .env
Then edit
.env
and add your Groq API key.
-
Start the Streamlit app:
streamlit run app.py
-
Open your browser and navigate to
http://localhost:8501
ai-task-manager/
├── db/ # Database files
├── logs/ # Application logs
├── prompts/ # System prompts
├── tools/ # Tool implementations
│ ├── add_task.py
│ ├── generate_task_report.py
│ ├── get_tasks_by_status.py
│ └── update_task_status.py
├── utils/ # Utility functions
│ └── db_utils.py
├── .env.example # Example environment variables
├── app.py # Streamlit application
├── main.py # Main application logic
├── populate_db.py # Script to populate sample data
└── requirements.txt # Python dependencies
The AI Task Manager uses Groq's language model to understand natural language commands and perform task management operations. Here's how it works:
- The user interacts with the application through the Streamlit web interface
- User input is processed by the Groq language model
- The system identifies the intent and extracts relevant parameters
- The appropriate tool is called to perform the requested action
- The result is formatted and displayed to the user
- "Add a new task to complete the project report by Friday"
- "Create a high priority task for the team meeting tomorrow at 2 PM"
- "Mark task 3 as completed"
- "Change the due date of 'Write documentation' to next Monday"
- "Show me all my tasks"
- "What tasks are due this week?"
- "List all high priority tasks"
- "Generate a weekly report"
- "Show me a summary of completed tasks"
Create a .env
file in the root directory with the following variables:
GROQ_API_KEY=your_groq_api_key_here
ENVIRONMENT=development
DATABASE_URL=sqlite:///db/tasks.db
DARK_MODE=false
Logs are stored in the logs/
directory:
task_manager.log
: General application logstask_manager_errors.log
: Error logs
To run the test suite:
pytest
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.