prepare("INSERT INTO users (username, password_hash, is_admin) VALUES (?, ?, ?)"); $stmt->execute([$username, $pass, $is_admin]); } if(isset($_POST['create_group'])) { $stmt = $pdo->prepare("INSERT INTO groups (name) VALUES (?)"); $stmt->execute([$_POST['group_name']]); } if(isset($_POST['assign_group'])) { $stmt = $pdo->prepare("INSERT OR IGNORE INTO user_groups (user_id, group_id) VALUES (?, ?)"); $stmt->execute([$_POST['user_id'], $_POST['group_id']]); } if(isset($_POST['update_user_channels'])) { $ch = $_POST['channels'] ?? []; $ch_str = is_array($ch) ? implode(',', $ch) : ''; $stmt = $pdo->prepare("UPDATE users SET notify_channels=?, telegram_id=?, email=?, whatsapp_number=? WHERE id=?"); $stmt->execute([$ch_str, $_POST['telegram_id'], $_POST['email'], $_POST['whatsapp_number'], $_POST['user_id']]); echo "
User preferences updated!
"; } if(isset($_POST['update_sys_config'])) { $stmt = $pdo->prepare("UPDATE system_config SET v=? WHERE k=?"); $stmt->execute([$_POST['completed_days'], 'completed_days']); $stmt->execute([$_POST['archived_days'], 'archived_days']); echo "
System Kanban Configuration updated!
"; } } $users = query("SELECT id, username, is_admin, notify_channels, telegram_id, email, whatsapp_number FROM users")->fetchAll(); $all_groups = query("SELECT * FROM groups")->fetchAll(); try { $pdo->exec("CREATE TABLE IF NOT EXISTS system_config (k TEXT PRIMARY KEY, v TEXT)"); $pdo->exec("INSERT OR IGNORE INTO system_config (k, v) VALUES ('completed_days', '7')"); $pdo->exec("INSERT OR IGNORE INTO system_config (k, v) VALUES ('archived_days', '90')"); } catch(Exception $e) {} $conf_comp = query("SELECT v FROM system_config WHERE k='completed_days'")->fetchColumn() ?: 7; $conf_arch = query("SELECT v FROM system_config WHERE k='archived_days'")->fetchColumn() ?: 90; ?>

Admin Panel

Create User

Create Group & Assign Role

System Operations & Configurations

Modify the global lifecycle durations for Kanban Auto-Archiving / Auto-Deleting processes.

Default: 7 Days (Before auto-moving to Archive)
Default: 90 Days (Before permanent deletion)

User Profile & Settings (Channels)

Assign specific notification channels (Native, Telegram, Email, WhatsApp) to users. User must be created above first.

UsernameActive ChannelsTelegram IDEmailWhatsAppAction

Existing Groups Breakdown

    prepare("SELECT u.username FROM users u JOIN user_groups ug ON u.id = ug.user_id WHERE ug.group_id=?"); $stmt->execute([$g['id']]); $g_users = $stmt->fetchAll(); foreach($g_users as $gu) echo "
  • ".htmlspecialchars($gu['username'])."
  • "; if(!$g_users) echo "
  • No users in group
  • "; ?>

No groups registered.