A lightweight Windows desktop tool for recording daily tasks and completed times.
- Add tasks with descriptions and deadlines
- Mark tasks as completed
- View task statistics (total, pending, completed)
- Double-click to toggle task completion
- Persistent storage using SQLite database
DesktopNote/
├── main.py # Application entry point
├── requirements.txt # Python dependencies
├── README.md # This file
│
├── ui/ # UI components
│ ├── __init__.py
│ └── main_window.py # Main window UI and logic
│
├── models/ # Data models
│ ├── __init__.py
│ └── task.py # Task data class
│
└── database/ # Database layer
├── __init__.py
└── db.py # Database operations
- Python 3.7 or higher
- pip or conda package manager
-
Clone or create the project directory
-
Install dependencies:
Using pip:
pip install PyQt5
Using conda:
conda install pyqt
Alternatively, install from requirements.txt:
pip install -r requirements.txt
-
Run the application:
python main.py
Or if using python launcher:
py main.py
The application uses SQLite database (tasks.db). The database file will be automatically created in the project directory on first run.
CREATE TABLE tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
description TEXT NOT NULL,
deadline TEXT,
created_at TEXT NOT NULL,
completed BOOLEAN DEFAULT 0,
completed_at TEXT
);-
Adding a Task:
- Enter task description in the text field
- Set a deadline (optional)
- Click "Add Task" button
-
Completing a Task:
- Select a task from the list
- Click "Mark as Complete" button
- Or double-click the task to toggle completion status
-
Deleting a Task:
- Select a task from the list
- Click "Delete Selected" button
-
Viewing Statistics:
- Total, pending, and completed task counts are displayed at the bottom
- The UI is built with PyQt5
- Database operations are handled in
database/db.py - Task model is defined in
models/task.py - Main application logic is in
ui/main_window.py
- Task categories/tags
- Priority levels
- Recurring tasks
- Notifications/reminders
- Export/import functionality
- Dark mode theme