=== LucrativeIT Project Manager with Feedback – Kanban Boards & Tasks ===
Contributors: lucrativeit
Tags: project management, kanban, feedback, bug tracking, task manager
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.4.12
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

WordPress project management with kanban boards, task tracking, team roles, and a visual feedback widget that turns screenshots into tasks.

== Description ==

**LucrativeIT Project Manager with Feedback** is a complete WordPress project management plugin. Plan work on drag-and-drop kanban boards, track bugs and tasks, assign them to your team, and collect annotated screenshot feedback from visitors and clients — all inside your own WordPress admin.

Everything runs on your own site. There is no external account to create, no per-seat subscription, and no project data leaving your server. Your projects, tasks, comments, and feedback live in your WordPress database.

= Why use this plugin =

* **Project management and client feedback in one place.** Most WordPress plugins give you either a task board or a feedback form. This one connects them: a visitor report becomes a task on the right project board automatically.
* **Visual bug reports.** Reporters annotate a screenshot of the exact page they are looking at, so you get the URL, the browser, and a picture instead of "the button looks broken".
* **Works on sites you do not control.** A copy-paste embed script collects feedback from staging sites, non-WordPress sites, and static builds, and files it back to your board.
* **Granular team access.** Staff are ordinary WordPress Subscribers with plugin-scoped roles, so you never hand out administrator accounts to see a board.
* **No page builder or theme lock-in.** The admin app and the front-end widget work with any theme.

**Live demo:** [https://wptaskhub.lucrativeit.com/](https://wptaskhub.lucrativeit.com/)

= Who it is for =

* **Freelancers and agencies** collecting change requests and bug reports from clients on live or staging sites.
* **In-house teams** running an editorial calendar, a development backlog, or a release checklist without paying for another SaaS seat.
* **Site maintainers** who need a visitor-facing "report a problem" button that produces actionable tickets.
* **Support and QA teams** triaging incoming issues by priority, assignee, and due date.

= Common use cases =

* Client feedback and website revision tracking during a build or redesign.
* Bug tracking and issue tracking for a WordPress site or plugin.
* A shared team task manager and to-do board inside wp-admin.
* A website QA checklist with screenshot evidence on every ticket.
* Turning "report a problem" submissions into a triaged work queue.

= Free features =

**Dashboard**
Site-wide or per-project overview with KPIs (open, completed, overdue, high priority, unassigned), charts by status/priority/project, and recent task activity.

**Kanban boards & list view**
Drag-and-drop boards with customizable, color-coded status columns. Collapse columns, reorder statuses, and switch between Kanban and List views. Filter by status, type, priority, assignee, due date, and search.

**Projects**
Unlimited projects with rich descriptions, brand color, multiple live site URLs, team members, and pinned projects in the sidebar for quick access.

**Tasks & issues**
Issue types (Bug, Task, Story, Epic, Feedback — and custom types), priorities (Low / Medium / High / Urgent), assignee, due date, rich description, file attachments, threaded replies, and a full activity log for status, priority, and assignee changes.

**Manage Task & My Tasks**
Browse tasks across all projects in List or Kanban view, or open My Tasks for a personal view of everything assigned to you.

**Visual feedback widget**
A floating Feedback button on your public WordPress site. Visitors describe what they saw, annotate a captured screenshot (text, lines, arrows, boxes), and the report is added as a task on the project you choose in Settings.

**External feedback embed**
Copy-paste embed script for non-WordPress sites, plus the `[lucrpm_feedback_button]` shortcode for an inline trigger on WordPress pages.

**Staff, roles & permissions**
Add staff as WordPress Subscribers with plugin-scoped PM roles. Built-in roles (PM Admin, Project Manager, Team Member) plus custom roles with per-module access. Non-admins only see projects they belong to.

**Email & notifications**
Gmail or custom SMTP for outgoing mail. Alerts for new tasks, new comments, and new assignments.

**Settings**
Customize the feedback widget, email/SMTP, departments, roles & permissions, task types, and default board columns.

= Pro features =

Unlock advanced modules with the LucrativeIT Project Manager Pro add-on:

* **Reports Pro** — Advanced reporting and analytics for projects and tasks.
* **Milestones** — Plan work with milestones and backlog; assign tasks to milestones and filter boards by milestone.
* **Time Tracking** — Log time on tasks with per-task timers, a dedicated Time Tracking screen, and client/billing fields on projects.
* **Comment Email Pro** — Reply to task comments by email (inbound reply setup).

Visit [wptaskhub.lucrativeit.com](https://wptaskhub.lucrativeit.com/) for Pro details and licensing.

== Installation ==

1. Upload the `lucrativeit-project-manager-with-feedback-kanban-boards-tasks` folder to `/wp-content/plugins/`.
2. Activate the plugin through the "Plugins" screen in WordPress.
3. Go to the new "Project Manager" menu in wp-admin to start using your
   first board (created automatically on activation).
4. Visit "Project Manager → Settings" to customize roles, email, or the public
   feedback widget.

== How to add the feedback widget to a project ==

Feedback on **this WordPress site** is assigned to the project you choose in
**Project Manager → Settings → Feedback widget → Frontend project**. For
external sites, add the live site URL on the project first.

1. Open **Project Manager → Manage Project**.
2. Create a project or open an existing one and click **Edit**.
3. In **Project URLs**, add the live site URL where visitors will leave feedback
   (for example `https://example.com`). Add multiple URLs if needed.
4. Click **Save Changes**.

Then choose the step that matches your site:

**If this plugin is already installed on that WordPress site**
1. Go to **Project Manager → Settings → Feedback widget**.
2. Enable the floating button and choose the **Frontend project** that should
   receive reports. You can also set color, position, and text.
3. Save. No theme code is required. Reports from this site become tasks on
   the selected project.

**If it is a WordPress site without this plugin**
1. Open the project and click **Feedback Widget** (also available from the
   project sidebar menu, or the **Widget** button on the Manage Project card).
2. Click **Copy Script**.
3. Paste the script into that site’s header using a header/footer insertion
   plugin or your child theme’s `header.php` (do not edit parent theme files
   directly). Place it before the closing `</head>` tag.

**If it is a non-WordPress site**
1. Open the project and click **Feedback Widget** (also available from the
   project sidebar menu, or the **Widget** button on the Manage Project card).
2. Click **Copy Script**.
3. Paste the script into your site’s HTML — in the `<head>` or just before the
   closing `</body>` tag — then deploy or save the page.

The embed script loads JavaScript and CSS only from **this WordPress site**
(the plugin’s own files). It does not download executable code from third-party
CDNs. Submissions from matching page URLs are added as tasks on that project board.

== External services ==

This plugin does **not** phone home or send data to LucrativeIT servers by default.

* **Local WordPress widget:** Runs on your site. Submissions go to your own
  WordPress REST API.
* **External embed (optional):** When you install the embed script on another
  site, that site loads the widget scripts from your WordPress install and
  posts feedback to your site’s REST API. Only use the embed on sites you
  control or have permission to modify.
* **SMTP (optional):** If you configure Gmail or custom SMTP in Settings, email
  is sent through the mail host you provide.

== Privacy ==

When a visitor submits feedback, your site may store:

* Description / message text
* Reporter name (optional) and email (required)
* Page URL and browser user agent
* Annotated screenshot image (uploaded to your Media / uploads directory)

Site owners should disclose this collection in their privacy policy. No feedback
data is sent to LucrativeIT unless you separately configure an external service.

== Third-party libraries ==

* [html2canvas](https://html2canvas.hertzen.com/) (MIT License) — bundled locally
  for screenshot capture. Source: `public/js/html2canvas.min.js`.

== Notes ==

- All data is stored in dedicated custom database tables (created on
  activation) — no custom post types are used.
- Access is controlled by Project Manager roles and module permissions
  (Settings → Roles & permissions). Staff created in the plugin are WordPress
  Subscribers and use a PM role for module access.
- This plugin does not provide PHP/JavaScript code editors, file managers, or
  remote code execution features.

== Frequently Asked Questions ==

= Is this a full project management plugin, or just a feedback form? =

Both. It ships kanban boards, projects, tasks with types and priorities,
assignees, due dates, attachments, threaded comments, and an activity log. The
visual feedback widget is an additional way for tasks to be created.

= Do I need an external account or subscription? =

No. The plugin runs entirely on your WordPress install and stores data in its own
database tables on your server. No account, API key, or third-party service is
required to use the free features.

= How many projects, boards, or tasks can I create? =

There is no limit imposed by the plugin.

= Can clients or visitors submit feedback without a WordPress account? =

Yes. The floating feedback button works for logged-out visitors. Submissions are
rate limited, and you can turn the widget off entirely in Settings.

= Can I collect feedback from a site that does not run WordPress? =

Yes. Each project provides a copy-paste embed script you can paste into any HTML
page, including staging sites and static builds. Feedback from that page is filed
as a task on the matching project board.

= How does the plugin know which project a report belongs to? =

On the WordPress site where this plugin is installed, choose the project under
**Settings → Feedback widget → Frontend project**. External embed reports are
matched by the project's embed key and Project URL. See "How to add the
feedback widget to a project" below.

= Does the screenshot capture send my page to a third-party service? =

No. Screenshots are rendered in the visitor's browser with a locally bundled copy
of html2canvas and uploaded to your own site's uploads directory.

= Can I give my team access without making them administrators? =

Yes. Staff are created as WordPress Subscribers and given a plugin-scoped role
(PM Admin, Project Manager, Team Member, or a custom role) that controls which
modules they can open. Non-administrators only see the projects they belong to.

= Does it use custom post types? =

No. All data is stored in dedicated custom database tables created on activation,
so your posts, pages, and media library stay untouched.

= Does it work with any theme? =

Yes. The admin interface is a self-contained app in wp-admin, and the front-end
feedback button is injected in the footer, so no theme template changes are
needed.

= Will my data be deleted if I uninstall? =

No. Your projects, tasks, and feedback are kept by default, so you can reinstall
without losing anything. If you want the plugin to drop its tables and options
when it is deleted, opt in first by adding this to `wp-config.php`:

`define( 'LUCRPM_REMOVE_DATA_ON_UNINSTALL', true );`

= Is there a Pro version? =

Yes. Reports, milestones, time tracking, and email replies to task comments are
available in the Pro add-on. All features listed under "Free features" work
without it.

== Screenshots ==

1. Dashboard with KPIs, completion charts, and recent activity across all projects.
2. Manage Project page listing every project, with View, Edit, Widget, and Open Board actions.
3. Create a project: title, rich description, live site URLs, and board color.
4. After creating a project, copy the embed script to collect feedback from that site.
5. Create a task with type, priority, status, assignee, due date, description, and attachments.
6. Manage Task kanban view with drag-and-drop columns (To Do, In Progress, Done, Backlog).
7. Manage Task list view showing type, priority, status, assignee, and due date.
8. Visitor feedback appears on the project board as a Feedback card with the annotated screenshot.
9. Floating Feedback button on the public WordPress site.
10. Send Feedback modal: annotate the captured screenshot with text, lines, arrows, and boxes.
11. Settings → Feedback widget: enable the button, choose color, position, and label.
12. Settings → Email: Gmail or custom SMTP for task and assignment notifications.
13. Settings → Departments used when adding staff.
14. Settings → Roles & permissions with per-module access for PM Admin, Project Manager, and Team Member.
15. Settings → Board columns: default columns for new projects and per-project kanban columns.

== Changelog ==

= 1.4.12 =
* Lock the page during screen recording so clicks cannot navigate or reload and reset the feedback form.

= 1.4.11 =
* Cross-platform screen recording: safer MediaRecorder/mime handling for Chrome, Edge, Firefox, and Safari on Windows, macOS, and Ubuntu.

= 1.4.8 =
* Feedback API accepts multipart video uploads (Pro screen recording, max 10 MB).

= 1.4.7 =
* Feedback widget hooks for Pro: form-first capture flow, uploaded screenshots, and embed config filters.

= 1.4.6 =
* The public feedback modal now blocks clicks on the page behind it while open.

= 1.4.5 =
* Settings → Feedback widget now includes a Frontend project option so you can
  choose which project receives reports from this WordPress site.

= 1.4.4 =
* Guest feedback submissions that use a project_key are now bound to that
  key's project. A valid key for one project can no longer create feedback
  assigned to a different project_id.
* The feedback create handler no longer trusts a client-supplied project_id
  on its own: keyed requests are assigned to the key's project, and logged-in
  users may only target a project they can access.

= 1.4.3 =
* Replaced the generic can_view / can_edit / can_manage REST permission
  callbacks with per-object checks, and removed them from the base controller
  so no route can fall back to a generic check. Every route now resolves the
  project that owns the requested record and authorises against that project,
  so a task, sprint or label ID belonging to another project can no longer be
  read, changed or deleted by guessing its ID.
* Task, label and sprint collection endpoints now require a project_id the
  caller can access; only administrators may list across all projects.
* Creating a task now verifies that the board, column and sprint all belong to
  the requested project, and re-ordering a column can only affect tasks in that
  same project.
* The settings endpoints now require manage_options; being able to publish
  pages or manage projects no longer grants access to global settings.
* Listing assignable users now requires task or project management permission,
  so the endpoint cannot be used to enumerate site users.

= 1.4.2 =
* Every REST API route registered by the plugin now has a permission_callback
  that performs a real authorisation check. The two public endpoints (feedback
  submission and embed configuration) no longer return true unconditionally:
  they require the feedback widget to be enabled plus either a valid wp_rest
  nonce or a project key that matches an existing project.
* Added explicit logged-in checks to the project, task, status, comment, and
  staff permission callbacks.
* Updating or deleting a task now requires permission to manage tasks, not just
  membership of the project.
* Mail-server credentials and the notification address can only be changed by
  users with manage_options, even when the plugin's Settings module has been
  delegated to another role.

= 1.4.1 =
* Tighten REST API permission checks so project, board, feedback, label, and
  task-status actions are scoped to the requested object.

= 1.4.0 =
* Version bump.

= 1.3.9 =
* Feedback widget description field, stronger public feedback validation,
  rate limiting, and WordPress.org guideline compliance updates.

= 1.3.5 =
* Plugin Check / wordpress.org compliance updates.
* Boards, issues, comments, activity log, feedback widget, and settings.

== Upgrade Notice ==

= 1.4.4 =
Security release. Guest project keys can only create feedback for the project
they belong to. Updating is recommended.

= 1.4.3 =
Security release. REST API endpoints now confirm that the record you request
belongs to a project you are allowed to access, and changing plugin settings
requires administrator rights. Updating is recommended.

= 1.4.2 =
Security release. Every REST API route now performs a real permission check, and
the public feedback and embed endpoints require a valid nonce or project key.
