Skip to content

cestFarnazz/TaskMind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskMind 🧠

A smart, modern desktop to-do application built with Python, PyQt5, and SQLite — featuring AI-powered task analysis, system reminders, and a clean light/dark UI.


✨ Features

Feature Description
✅ Task Management Add, edit, delete, and mark tasks as done
🔍 Search & Filter Real-time search by title or tags; hide completed tasks
📊 Smart Sorting Sort by due date, priority, title, or creation date
🤖 AI Analysis Claude/Gemini-powered task prioritization suggestions
✂️ AI Breakdown Split a complex task into actionable subtasks with AI
🔔 Reminders System tray notifications for overdue and due-today tasks
🌙 Dark Mode Toggle between a clean light and a deep dark theme
📤 Export Save your task list to CSV or JSON
📥 Import Load tasks from CSV or JSON (duplicate detection included)
⌨️ Keyboard Shortcuts Full keyboard navigation support

📸 Screenshots

Light Mode

Light Mode

Dark Mode

Dark Mode


🛠️ Tech Stack

  • Python 3.11+
  • PyQt5 — desktop UI framework
  • SQLite — local persistent storage
  • Google Gemini API (optional) — AI features
  • pytest — unit testing

📁 Project Structure

TaskMind/
├── main.py                  # Entry point, logging setup
├── requirements.txt
│
├── models/
│   ├── task.py              # Task dataclass + Priority enum
│   └── __init__.py
│
├── database/
│   ├── repository.py        # TaskRepository (CRUD layer)
│   └── __init__.py
│
├── ui/
│   ├── main_window.py       # Main application window
│   ├── task_dialog.py       # Add / Edit dialog
│   ├── ai_dialog.py         # AI analysis & breakdown dialogs
│   └── __init__.py
│
├── utils/
│   ├── ai_service.py        # Gemini API integration (QThread workers)
│   ├── reminder.py          # System tray reminder service
│   ├── theme.py             # Light / dark theme definitions
│   ├── io.py                # CSV & JSON export / import
│   └── __init__.py
│
└── tests/
    ├── test_repository.py   # Unit tests for TaskRepository
    └── test_io.py           # Unit tests for export / import

🚀 Getting Started

1. Clone the repository

git clone https://github.com/your-username/taskmind.git
cd taskmind

2. Create a virtual environment

python -m venv venv

# Windows
venv\Scripts\activate

# macOS / Linux
source venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Run the app

python main.py

🤖 AI Features (Optional)

The AI features require a free Google Gemini API key.

  1. Get your free key at aistudio.google.com (no credit card required)
  2. Set the environment variable before running the app:
# Windows
set GEMINI_API_KEY=your_api_key_here

# macOS / Linux
export GEMINI_API_KEY=your_api_key_here

Note: The Gemini API may be restricted in some regions and may require a VPN. The app works fully without an API key — AI buttons will show a setup prompt.


⌨️ Keyboard Shortcuts

Shortcut Action
Ctrl + N Focus the title field to add a new task
Ctrl + E Edit selected task
Delete Delete selected task
Ctrl + F Focus the search box
Ctrl + D Toggle done state of selected task
Ctrl + Shift + E Export tasks
F5 Refresh the list

🧪 Running Tests

pip install pytest
pytest tests/ -v

📦 Requirements

PyQt5>=5.15
google-generativeai>=0.7
pytest>=7.0

🗂️ Data Storage

Task data is stored locally at:

  • Windows: C:\Users\<you>\.todo_app\todo.db
  • macOS / Linux: ~/.todo_app/todo.db

Application logs are saved alongside the database as app.log.


📄 License

This project is licensed under the MIT License — see LICENSE for details.


👤 Author

farnaz akbari GitHub

About

A smart desktop to-do app built with Python, PyQt5 and SQLite — featuring AI task analysis, reminders, dark mode, and export/import.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages