Smart Project Manager is a desktop application for comprehensive project and task management, built with Python and PyQt5. It provides a hierarchical system for organizing projects, tasks, and subtasks, featuring visual labels, automatic progress tracking, and a dark-themed user interface.
- Author: Alexander Suvorov
- GitHub: smartlegionlab
By using this software, you agree to the full disclaimer terms.
Summary: Software provided "AS IS" without warranty. You assume all risks.
Full legal disclaimer: See DISCLAIMER.md
- Create, edit, and delete projects with name, version, and description.
- Hierarchical structure: Projects → Tasks → Subtasks.
- Automatic progress calculation for each project based on task completion.
- Create tasks and subtasks with titles, descriptions, priorities (High/Medium/Low), and optional due dates.
- Automatic completion logic: A task is marked as complete when all its subtasks are completed.
- Toggle completion status for tasks and subtasks directly from the main interface.
- Create custom labels with name, color, and description.
- Assign labels to both tasks and subtasks for categorization and filtering.
- Dedicated Label Manager dialog for creating, editing, and deleting labels.
- Visual progress bars for tasks, subtasks, and overall projects.
- Real-time global statistics dashboard showing counts and completion rates for all entities.
- Detailed project progress panel showing task/subtask counts and last update time.
- Dark theme optimized for extended use.
- Two-panel layout: Project tree on the left, task table and details on the right.
- Context menus for quick task actions (view, edit, mark complete, delete).
- Interactive tables with buttons for editing, deleting, and toggling status.
- Automatic saving to
~/.smart_project_manager/projects.json. - JSON-based storage for projects, tasks, subtasks, and labels.
- Data is automatically loaded on application startup.
- Python 3.7 or higher
- Required Python packages:
PyQt5
-
Clone the Repository:
git clone https://github.com/smartlegionlab/smart-project-manager.git cd smart-project-manager -
Install Dependencies: It is recommended to use a virtual environment.
pip install -r requirements.txt
-
Run the Application: Execute the main entry point:
python app.py
- Create a Project: Use
File → New Projector the "New Project" button. - Select a Project: Click on a project in the left panel to view and manage its tasks.
- Create a Task: With a project selected, use
File → New Taskor the "New Task" button. - Add Subtasks: Edit a task and navigate to the "Subtasks" tab to add detailed steps.
- Manage Labels: Use
Edit → Manage Labelsto create and organize your label system.
Creating Application Shortcuts:
The application allows you to create desktop entries directly from the menu:
- Go to File → Create Desktop Entry
- Choose locations:
- ✓ Application Menu (
~/.local/share/applications/) - adds to system app menu - □ Desktop (
~/Desktop/) - creates shortcut on desktop
- ✓ Application Menu (
- Click "Create Entry"
What happens:
- Creates
.desktopfile(s) with proper configuration - Sets executable permissions automatically
- Uses application icon if available
After creation:
- Application Menu: Log out and back in (or restart desktop) for entry to appear
- Desktop shortcut: May show "Unsecured Application Launcher" warning
- Right-click on shortcut → "Allow Launching" or "Trust"
- This is a one-time security confirmation
Note: This feature is only available on Linux systems with desktop environments that support .desktop files (GNOME, KDE, XFCE, etc.).
Ctrl+N: New ProjectCtrl+T: New TaskCtrl+B: Create BackUpCtrl+I: ImportCtrl+Shift+E: ExportCtrl+E: Edit Selected ProjectCtrl+D: Delete Selected ProjectCtrl+L: Manage LabelsF5: Refresh ViewF1: Open HelpCtrl+Q: Exit Application
This project is licensed under the BSD 3-Clause License. See the LICENSE file in the project
repository for full details.
The following features are identified in the code as future implementation targets:
- Task Filtering System - The "Show Completed Tasks" toggle in the
Viewmenu is implemented as a placeholder. Future implementation will:- Enable filtering of completed vs. pending tasks in the task table
- Provide additional filtering options (by priority, due date, labels, etc.)
- Persist filter settings between sessions
Copyright (©) 2026, Alexander Suvorov. All rights reserved.
