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
- Version: v0.1.8
- 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
~/.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.
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
Smart Project Manager is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.
The user is solely responsible for maintaining backups of their project data. The developers are not responsible for any data loss.
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 (©) 2025, Alexander Suvorov. All rights reserved.
