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:

  1. Downloads the source code from GitHub.
  2. Installs the application to ~/.local/share/smart-project-manager/. No root, no sudo.
  3. Creates a dedicated Python virtual environment at ~/.local/share/smart-project-manager/venv/ and installs dependencies into it.
  4. Registers the app in your desktop environment by creating ~/.local/share/applications/smart-project-manager.desktop.
  5. 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:

ItemPath
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:

  1. Go to File → Create Desktop Entry
  2. Choose locations: Application Menu (~/.local/share/applications/) and/or Desktop (~/Desktop/)
  3. Click Create Entry

What happens:

  • Creates .desktop file(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.).

  1. Create a Project: Use File → New Project or the "New Project" button
  2. Select a Project: Click on a project in the left panel to view and manage its tasks
  3. Create a Task: With a project selected, use File → New Task or the "New Task" button
  4. Add Subtasks: Edit a task and navigate to the "Subtasks" tab to add detailed steps
  5. Manage Labels: Use Edit → Manage Labels to create and organize your label system

ShortcutAction
Ctrl+NNew Project
Ctrl+TNew Task
Ctrl+BCreate BackUp
Ctrl+IImport
Ctrl+Shift+EExport
Ctrl+EEdit Selected Project
Ctrl+DDelete Selected Project
Ctrl+LManage Labels
F5Refresh View
F1Open Help
Ctrl+QExit Application

Planned Features:

  • Task Filtering System — The "Show Completed Tasks" toggle in the View menu 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