A simple yet functional ToDo list application built with Python and the PySide6 framework. Manage your tasks efficiently with features like completion status, priority marking, editing, deleting, and a handy always-on-top mini mode. Tasks are saved locally in a tasks.json
file.
- Add Tasks: Quickly add new tasks via an input field.
- Mark Complete: Toggle task completion status with a click. Includes a satisfying sound effect!
- Prioritize Tasks: Mark important tasks with a star icon. Prioritized tasks appear at the top of the active list.
- Edit Tasks: Modify the description of existing tasks easily.
- Delete Tasks: Remove tasks you no longer need via a right-click context menu.
- Persistent Storage: Your tasks are automatically saved to
tasks.json
in the application's directory and loaded on startup. - Mini Mode: Switch to a compact, always-on-top window showing only active tasks β perfect for keeping your list visible while working.
- Clean UI: Simple and intuitive interface built with PySide6.
- Cross-Platform: Built with Python and PySide6, potentially runnable on Windows, macOS, and Linux (requires dependencies).
There are two ways to use the application:
1. Using the Pre-built Executable (Recommended for End-Users)
-
Go to the Releases page of this repository.
-
Download the latest release EXE setup file for your Windows operating system (e.g.,
ToDoList_WINDOWS_setup.exe
). -
Run the setup executable and follow the instructions to install the app.
-
Hurrah! Now enjoy the ToDo List to manage your tasks efficiently.
Note: On Windows, you might get a SmartScreen warning because the executable isn't signed. You may need to click "More info" -> "Run anyway".
2. Running from Source (For Developers)
- Prerequisites:
- Python 3.7+ installed.
pip
(Python package installer).
- Clone the repository:
git clone https://github.com/rudra-mondal/ToDo-list.git cd ToDo-list
- Install dependencies:
pip install PySide6 pygame
- Run the application:
python main.py
- Adding Tasks: Click the "+ Add a task" button, type your task in the input field that appears, and press
Enter
. - Completing Tasks: Click the circle/radio button to the left of the task description. Click again to unmark. A sound plays upon completion.
- Prioritizing Tasks: Click the star icon to the right of the task description. Prioritized tasks move to the top of the active list. Click again to un-prioritize.
- Editing/Deleting Tasks: Right-click on a task item in the main window to open the context menu. Select "Edit" or "Delete".
- Mini Mode: Click the minimize-style button in the top-right corner of the main window header.
- Exiting Mini Mode: Click the back arrow button in the top-left corner of the mini window header to return to the full view.
- Moving Mini Mode: Click and drag anywhere on the mini window's background (header or task area) to move it around your screen.
If you want to create the executable yourself:
-
Install PyInstaller:
pip install pyinstaller
-
Navigate to the project root directory in your terminal (the one containing your
.py
script and theAssets
folder). -
Run the PyInstaller command:
-
Windows (cmd):
pyinstaller --name ToDoList --onedir --windowed --icon=Assets/icon.ico main.py
-
Linux/macOS (bash/zsh):
pyinstaller --name ToDoList --onedir --windowed --icon=Assets/icon.ico main.py
-
--onedir
: Creates a folder distribution (required for external assets). -
--windowed
/--noconsole
: Prevents the command prompt from showing. -
--icon
: Sets the application icon. -
Do not use
--add-data
for theAssets
folder.
-
-
Copy Assets: After the build finishes, find the
dist/ToDoList
folder. Manually copy the entireAssets
folder intodist/ToDoList
, so it sits next toToDoList.exe
(or the equivalent executable on other platforms). -
The application inside
dist/ToDoList
is now ready to run and distribute. -
NOTE: You can later make a setup executable using Inno setup
For the application (especially the built version) to find its icons and sounds, the Assets
folder must be in the same directory as the executable or the main Python script:
ToDoList/
βββ _internal
βββ Assets/
β βββ ...
βββ tasks.json (Created automatically on first save)
βββ ToDoList.exe
Contributions, issues, and feature requests are welcome!
- Fork the Project
- 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
Please report any bugs or suggest features using the GitHub Issues page.