Skip to content

Project Planner

Project Planner is Lubb's internal work-tracking hub: it plans projects and their milestones, tracks day-to-day execution on kanban "Tasklists" boards, and hosts three companion reference surfaces — a shared Knowledge Base, an admin login/credential vault, and a cross-channel marketing schedule calendar. It's used by staff and admins running the business (delivery teams, project owners, and platform admins), not by customers or resellers.

What you can do

  • Projects — track planning umbrella records with status (planning/active/on hold/completed/cancelled), priority, an assigned customer and owner, start/due dates, and a budget-hours target.

  • Live project rollups — each project row shows its attached tasklist count, open task count, completion percentage, and hours tracked, computed live from its kanban boards' cards and time entries (no manual entry).

  • Milestones — an inline detail list under each project row for dated deliverables, each with its own status (pending/done) and due date.

  • Tasklists (kanban boards) — boards made of ordered columns holding ordered cards; a board can be attached to a project so its work rolls up into that project's numbers, or left as a free-standing tasklist.

  • Task cards — each card carries a title, description, priority (low/medium/high), a recurrence tag (none/daily/weekly/monthly), and a status (todo/in progress/done).

  • Per-card time tracking — Start/Stop timers on a card create time entries; a card can have one open (running) entry at a time, and hours accumulate into the parent project's "Hours Tracked" figure live.

  • Knowledge Base — a shared library of reference articles (rate sheets, process docs, etc.) with a title, category, and rich-text content; not tied to any one project.

  • Admin Credentials vault — the estate's shared login store for hosting panels, servers, registrars, payment gateways, mailboxes and similar systems, with category and environment (production/staging/development) tags, an optional link to a customer or project, and a rotation-date readout. Restricted to owner/admin users only.

  • "Reveal" a stored secret — a superuser-only action that decrypts a credential's password/licence key on demand; every reveal is written to the audit log.

  • Marketing Schedule calendar — a single planning calendar across every campaign channel (AI Call Center, Meta, Video Ads, Newsletter, SMS), plus a sortable/filterable grid view of the same "planned flight" rows for bulk tidying and channel/status stats.

Common tasks

  1. Create a project. Open Projects, add a row with a name, status and priority, optionally assign a customer and owner, and set start/due dates. Set Budget Hours (hidden column, opens in the edit drawer) if you want a target to track hours-tracked against.

  2. Add a milestone. Expand a project's row to reveal its Milestones detail grid, then add a milestone with a name and due date; the project is pre-filled from the row you expanded. Flip its status to "done" as it completes.

  3. Stand up a tasklist and link it to a project. Create a kanban board (Tasklist) and set its project on the board itself; the project's Tasklists/Open Tasks/Progress/Hours Tracked columns then update automatically — there is nothing to edit on the project row for this.

  4. Move a task on the kanban board. Drag a card between columns (e.g. To Do → In Progress → Done) to change its status; card status feeds directly into its project's open-task count and completion percentage.

  5. Track time on a task. Start the timer on a card when work begins and stop it when done; while a timer is running its elapsed time counts live toward the project's Hours Tracked figure, even before the entry is closed.

  6. Store a credential in the vault. In Admin Credentials, add a row naming the system ("Cloudflare (lubb.co.za)"), pick a category and environment, and type the password and/or licence key into the write-only Password/Licence Key fields. Leaving either blank on save always means "don't change the stored secret" — there is no way to blank a secret by saving empty; delete the row instead. Only owner/admin users can see this grid at all, and only a superuser can use the "Reveal" button to decrypt a value back (which is logged).

  7. Add a knowledge base article. In Knowledge Base, add a row with a title, category, and content in the rich-text editor.

  8. Plan a marketing campaign flight. In Scheduled Campaigns (or the /schedule calendar), add a flight with a title, channel, start/end time, audience and budget; use "Open Marketing Schedule" to jump to the calendar view. This only records what's planned — actually queued/sending campaigns still live on and are sent from each channel's own module (Newsletter, Video Ads, etc.).

Data model

  • projects — a project: name, status, priority, customer/owner refs, dates, budget hours.

  • project_milestones — a dated deliverable belonging to one project (status pending/done).

  • kanban_boards — a tasklist/board; optionally linked to a project via project_id.

  • kanban_columns — an ordered column on a board.

  • kanban_cards — a task card in a column: title, description, priority, recurrence, status.

  • kanban_time_entries — one start→stop interval on a card; an open entry (no ended_at) means its timer is currently running.

  • knowledge_articles — a reference article: title, category, content.

  • admin_credentials — one system's login: system name, category, environment, URL, username, encrypted password/licence key, optional customer/project link, notes, last-rotated date.

  • campaign_schedules — one planned campaign flight: title, channel, status, start/end time, recurrence, audience, budget, and a soft link (grid + record id) to the actual campaign record living in that channel's own module.

Configuration & integrations

  • App install gating — all of Project Planner's grids (Projects, Knowledge Base, Admin Credentials, Scheduled Campaigns) are registered site-unrestricted; a site's menu only shows the group once the relevant app is installed for that tenant.

  • Admin Credentials access control — the whole grid is gated to owner/admin users (admin_only); a non-admin cannot list a single row. Revealing a stored secret is further restricted to platform superusers.

  • Secret storage — passwords and licence keys are encrypted server-side (Fernet) and stored as ciphertext columns that are never included in list/export payloads. The grid's Password/Licence Key fields are write-only: they always read back empty, and typing a new value replaces the stored secret and stamps its rotation date. This module does not print or log secret values anywhere; only the fact that a reveal happened is audited.

  • Cross-app soft links — Projects, Admin Credentials and the schedule calendar link out to Customers, Users, and (for the schedule) each marketing channel's own module grid; these are non-enforced references rather than hard foreign keys in most cases, so a project or customer can be referenced without a strict database constraint (Admin Credentials' project_id is the one real foreign key among them).

  • Marketing calendar feed — the /schedule calendar merges these planned rows with each channel's own live "already scheduled" records (e.g. newsletter send times, video ad publish times), so the calendar shows both plans and genuinely queued sends without duplicating channel data.

API reference

All five grids (Projects, Project Milestones, Knowledge Base, Admin Credentials, Scheduled Campaigns) run on the platform's generic grid engine, mounted under /api/v1/grid/{slug}/..., where {slug} is projects, project-milestones, knowledge-base, admin-credentials, or campaign-schedule. Standard endpoints available to every grid:

  • GET /api/v1/grid/{slug}/data — list/search/filter/sort rows (paginated).

  • POST /api/v1/grid/{slug} — create a row.

  • PUT /api/v1/grid/{slug}/{row_id} — update a row.

  • DELETE /api/v1/grid/{slug}/{row_id} — delete a row.

  • GET /api/v1/grid/{slug}/stats — the grid's summary stat cards (e.g. Active/Overdue/Completed on Projects, Production/Notes Only on Admin Credentials, Running/Planned/Budget on Scheduled Campaigns).

  • GET /api/v1/grid/{slug}/options — dropdown/lookup option lists for editable fields (e.g. customer or owner pickers).

  • POST /api/v1/grid/{slug}/action/{key} — grid-specific actions; Admin Credentials exposes reveal here (decrypt-and-audit a stored secret, superuser only).

Project Milestones is a detail-only grid (no menu entry) reached by expanding a row on the Projects grid. Tasklists (kanban boards/columns/cards/time entries) are not served by the generic grid endpoints above — they're the app's own kanban surface, which the Projects grid's live rollup columns (Tasklists, Open Tasks, Progress %, Hours Tracked) read from directly on each request rather than storing.

Lubb ERP Documentation