Smart Project Manager
Desktop application for comprehensive project and task management
Hierarchical system for organizing projects, tasks, and subtasks with visual labels and automatic progress tracking.
Smart Project Manager — desktop application for comprehensive project and task management, built with Python and PyQt5.
Provides a hierarchical system for organizing projects, tasks, and subtasks, featuring visual labels, automatic progress tracking, and a dark-themed user interface.
1. Project Management
- Create, edit, and delete projects with name, version, and description
- Hierarchical structure: Projects → Tasks → Subtasks
- Automatic progress calculation based on task completion
2. Task & Subtask System
- Create tasks and subtasks with titles, descriptions, priorities (High/Medium/Low), and due dates
- Automatic completion logic — task marked complete when all subtasks are completed
- Toggle completion status directly from main interface
3. Label System
- Create custom labels with name, color, and description
- Assign labels to tasks and subtasks for categorization
- Dedicated Label Manager dialog
4. Progress Tracking & Statistics
- Visual progress bars for tasks, subtasks, and projects
- Real-time global statistics dashboard
- Detailed project progress panel
5. User Interface
- Dark theme optimized for extended use
- Two-panel layout: Project tree on left, task table on right
- Context menus for quick task actions
6. Data Persistence
- Automatic saving to
~/.smart_project_manager/projects.json - JSON-based storage for projects, tasks, subtasks, and labels
- Python 3.7 or higher
- Git (only for the installer)
- curl (only for the installer)
- PyQt5
There are two independent ways to use this application:
- Run from source — clone the repo, create a virtual environment, launch manually. Nothing is installed system-wide.
- Install system-wide — one command creates a menu entry. Desktop shortcut is opt-in.
Option 1 — Run from Source (no system install)
# 1. Clone the repository git clone https://github.com/smartlegionlab/smart-project-manager.git cd smart-project-manager # 2. Create a virtual environment python3 -m venv venv # 3. Activate it source venv/bin/activate # 4. Install dependencies pip install -r requirements.txt # 5. Launch the app python app.py
Option 2 — Install System-Wide (recommended)
curl -fsSL https://raw.githubusercontent.com/smartlegionlab/smart-project-manager/master/install.sh | bash
What the installer does:
- Downloads the source code from GitHub.
- Installs the application to
~/.local/share/smart-project-manager/. No root, no sudo. - Creates a dedicated Python virtual environment at
~/.local/share/smart-project-manager/venv/and installs dependencies into it. - Registers the app in your desktop environment by creating
~/.local/share/applications/smart-project-manager.desktop. - Refreshes the desktop database so the menu entry appears without a full re-login on most systems.
Desktop shortcut (opt-in):
By default, no Desktop shortcut is created. This is intentional — on GNOME (default on Ubuntu), desktop icons are hidden by default. To also create a Desktop shortcut during install, pass the SPM_CREATE_DESKTOP_SHORTCUT=1 environment variable to bash — the second command in the pipeline:
curl -fsSL https://raw.githubusercontent.com/smartlegionlab/smart-project-manager/master/install.sh | SPM_CREATE_DESKTOP_SHORTCUT=1 bash
Or export it first, then run the normal installer:
export SPM_CREATE_DESKTOP_SHORTCUT=1 curl -fsSL https://raw.githubusercontent.com/smartlegionlab/smart-project-manager/master/install.sh | bash
Note: Writing SPM_CREATE_DESKTOP_SHORTCUT=1 curl ... | bash does not work — in a shell pipeline, an environment variable prefix applies only to the command on the left side of the pipe. Pass it to bash directly, or export it beforehand.
Uninstall:
curl -fsSL https://raw.githubusercontent.com/smartlegionlab/smart-project-manager/master/uninstall.sh | bash
The uninstaller removes the application, menu entry, and Desktop shortcut (if present). It never touches your projects data at ~/.smart_project_manager/projects.json.
Installation Paths:
| Item | Path |
|---|---|
| Application files | ~/.local/share/smart-project-manager/ |
| Virtual environment | ~/.local/share/smart-project-manager/venv/ |
| Application menu entry | ~/.local/share/applications/smart-project-manager.desktop |
| Desktop shortcut (opt-in) | ~/Desktop/smart-project-manager.desktop |
| User data (projects) | ~/.smart_project_manager/projects.json |
Note: If you installed the app via install.sh, the application menu entry is already created automatically. The in-app option described below is useful when you run the app manually from a custom location, or when you want to add a Desktop shortcut on demand. It is also the recommended way for development: it creates a shortcut pointing to the currently running instance (your working copy), not to a copy under ~/.local/share/.
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/) and/or Desktop (~/Desktop/) - 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 → "Allow Launching" or "Trust" (one-time action)
Note: This feature is only available on Linux systems with desktop environments that support .desktop files (GNOME, KDE, XFCE, etc.).
- 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
| Shortcut | Action |
|---|---|
Ctrl+N | New Project |
Ctrl+T | New Task |
Ctrl+B | Create BackUp |
Ctrl+I | Import |
Ctrl+Shift+E | Export |
Ctrl+E | Edit Selected Project |
Ctrl+D | Delete Selected Project |
Ctrl+L | Manage Labels |
F5 | Refresh View |
F1 | Open Help |
Ctrl+Q | Exit Application |
Planned Features:
- Task Filtering System — The "Show Completed Tasks" toggle in the
Viewmenu is a placeholder. Future implementation will enable filtering of completed vs. pending tasks, with additional options by priority, due date, labels, and persistence between sessions
By using this software, you agree to the full disclaimer terms.
Software provided "AS IS" without warranty. You assume all risks.
Full legal disclaimer: See DISCLAIMER.md
License: BSD 3-Clause License