<ul><li><b>js.php line 4 fix</b>: <code>$_GET["id"]</code> — <code>Undefined array key "id"</code> warning on main module page; added <code>?? ''</code> null coalescing</li><li><b>group.controller.php insertGroup fix</b>: <code>$updateid</code> undefined in insert context — used in <code>($updateid) ? $updateid : $save</code> expression; replaced with <code>$save</code> directly</li><li><b>group.controller.php removeMember fix</b>: <code>$user</code> undefined — <code>update_groupCount($user["group_id_fk"])</code> called before <code>$user</code> was set; added <code>$user = $this->group->get_memberGroup($r["group_user_id"])</code> before removal, with null guard</li><li><b>group.controller.php getGroupLists fix</b>: <code>$r["joinfilter"]</code> undefined index — never sent by JS; added <code>?? null</code> coalescing on all 4 params</li><li><b>group.controller.php updateGroup fix</b>: <code>$_FILES["group_image"]</code> not checked with isset — throws warning when no file uploaded; wrapped with <code>!isset()</code> check</li><li><b>group.controller.php updateCategory fix</b>: <code>$ret</code> possibly undefined if action != updateCategory or updateid not set; initialized <code>$ret = false</code></li><li><b>group.controller.php getAllowedRoles fix</b>: <code>$data["roles"]</code> undefined if no roles saved yet; added null check before json_decode</li><li><b>DB schema fix</b>: <code>group_information.id</code> column missing AUTO_INCREMENT — INSERT fails with <code>Field id has no default value</code>; ran <code>ALTER TABLE group_information MODIFY COLUMN id int NOT NULL AUTO_INCREMENT</code></li><li>Verified CRUD: getCategoryList ✓ insertCategory ✓ updateCategory ✓ getCategoryById ✓ deleteCategory ✓ insertGroup ✓ getGroupDetails ✓ updateGroup ✓ getGroupInformation ✓ updateGroupInformation ✓ saveRolesPermission ✓ getApprovedPost ✓ getPendingPost ✓ getBannedPost ✓ deleteGroup ✓</li><li>Page load 0 PHP errors ✓</li></ul>