P3CL Project Management Platform
A complete project management, procurement, estimating, and team communication system built specifically for Project 3 Consultants & Logistics Inc. and the Caribbean market.
🏗️ Construction
💼 Consulting
💻 IT Projects
🌿 Civil Works
📦 Procurement
💬 Team Chat
🤖 AI Powered
🏢 1. Platform Overview
The P3CL Project Management Platform (P3CLPM) is a Progressive Web App (PWA) — meaning it runs in your browser but can be installed on any device like a native app. It works on desktop computers, tablets, and smartphones without any app store downloads.
📁
Projects
Manage construction, consulting, IT, and civil works projects from start to finish.
💰
Estimates
Build detailed estimates with line items, VAT control, and branded print/PDF output.
📦
Procurement
Track international orders through a 9-stage pipeline from sourcing to delivery.
🤖
AI Pricing
AI-powered Barbados market price lookups for materials and services.
📧
Email
Send branded emails to clients directly from projects and procurement orders.
💬
Team Chat
Internal messaging with file sharing, replies, and real-time delivery.
☁️
Cloud Sync
All data syncs across devices in real time via Supabase.
📱
Mobile Ready
Installs as a home screen app on Android and iPhone.
Navigation
The sidebar on the left contains all modules. On mobile the sidebar collapses — tap the menu icon to open it. The topbar shows the sync status dot (tap it to sync manually or configure Supabase) and the notification bell.
🔑 2. Logging In
Open the platform URLNavigate to your Netlify URL (e.g. https://p3clpm.netlify.app) in Chrome or Safari.
Connect Supabase (first time only)At the bottom of the login screen tap ⚙️ Connect Supabase. Enter your Supabase project URL and anon key, then tap Test → Save. You will see a green confirmation showing all 13 database tables found.
Refresh accountsTap 🔄 Refresh accounts from cloud to pull the latest user list from Supabase. This is required on every new device before logging in.
Enter your credentialsEnter your email and password and tap Sign In.
Change your password (first login)On your first login on any new device you will be asked to set a password for that device. Passwords are stored locally per device for security — they never travel through the cloud.
💡Default administrator credentials: Email mark@p3cl.com · Password P3CL@2026admin. Change this immediately after first login.
Installing as a Mobile App
Android (Chrome)Tap the three-dot menu in Chrome → Add to Home screen → Install. The app opens full-screen like a native app.
iPhone / iPad (Safari)Tap the Share button (box with arrow) → Add to Home Screen → Add. Must use Safari, not Chrome.
📊 3. Dashboard
Sidebar → Dashboard
The dashboard gives you an at-a-glance view of your business. Four stat cards show total projects, active projects, the total estimated value of active projects (calculated from estimates), and the total accepted value. Below the cards, up to 8 recent active projects are shown in a scrollable grid. Completed and archived projects do not appear on the dashboard.
Estimated Value vs Accepted Value
Estimated Value is the sum of the highest estimate total across all active and estimate-stage projects. Accepted Value shows only estimates that have been formally accepted by a client. Together these show your pipeline value versus confirmed work.
The Dashboard is the first screen after login. It gives a real-time snapshot of the entire business.
What the Dashboard shows
👋Greeting — Personalised good morning/afternoon/evening message with your name and current time.
📁Active Projects — Count of currently active projects with a link to view all.
💰Pending Estimates — Estimates awaiting client response.
📦Open Procurement Orders — Orders currently in the pipeline.
👥Total Clients — Number of clients on file.
🔔Recent Notifications — Last activity feed across the platform.
👥 4. Clients
Clients are the foundation of the platform. Every project, estimate, and procurement order is linked to a client.
Adding a Client
Go to ClientsClick Clients in the sidebar.
Click + Add ClientFill in: Name (required), Company, Email, Phone, and Address.
SaveThe client is saved locally and synced to Supabase immediately.
Editing a Client
Each client card has an ✏️ Edit button. The edit modal pre-fills all existing details. All fields are editable including address. Click Save Changes when done.
Deleting a Client
A 🗑️ Delete button appears only on client cards that have no projects attached. Clients with active projects cannot be deleted to protect data integrity.
✅Add clients before creating projects — the client dropdown in new project and new procurement order modals pulls from this list.
📁 5. Projects
Creating a Project
Click Projects → + New ProjectA modal opens with all project fields.
Fill in the detailsProject name, type (Construction / Consulting / IT / Landscaping), client, location, description, and target end date.
StatusNew projects default to Estimate status. The status changes to Active automatically when an estimate is accepted.
Project Detail Tabs
Opening a project shows the detail view with four tabs:
📋Overview — Status, milestones, financial summary, Email Client button, notes.
✅Tasks — Add, edit, and complete tasks. Each task has title, description, assignee, priority, and due date.
💰Estimates — Create and manage estimates for this project.
📐Plans — Upload and store building plans and documents.
Milestones
Add milestones in the Overview tab. Each milestone has a title and a completion checkbox. Progress percentage is calculated automatically from milestone completions and shown on the dashboard.
Active and Completed Tabs
The Projects screen has two tabs: Active (all in-progress projects) and Completed & Archived. When you archive or complete a project it moves off the Active tab automatically. You can restore an archived project at any time from the Completed & Archived tab.
Budget vs Actual
If a project has an Estimated Value set, the project overview tab shows a budget progress bar. This bar fills as you add expenses linked to that project, showing the percentage of budget spent. If expenses exceed the budget the bar turns red and shows an over-budget warning.
Filtering Projects
The Projects list has filters for Client and Status at the top, plus a text search box. All filters work together in real time.
Emailing the Client
Projects → Open Project → Overview → 📧 Email Client
Opens the email compose modal pre-filled with the client's details. Choose a template, customise the message, and optionally attach a file before sending.
💰 6. Estimates & Invoices
Project → Estimates tab or Sidebar → Invoices
Sequential Numbering
Estimates are numbered sequentially starting at EST-0037. Invoices start at INV-0023. Each new document automatically receives the next number in sequence, shared across all users so numbers never repeat.
Creating an Estimate
Open a project → Estimates tab → click + New Estimate.
Add line items manually or use Import from supplier to pull items from your supplier catalogue with markup applied.
Toggle VAT on or off. Set status to Sent when you share it with the client.
When the client agrees, set status to Accepted. This activates the project automatically.
Import from Supplier Catalogue
On any open estimate, click Import from supplier. Choose a supplier, tick the items you need, set the quantity, then choose your markup type — percentage (e.g. 20%) or fixed amount (e.g. $45.00) — per line item. The sell price and line total calculate instantly. Click Add to estimate to insert all selected items.
Converting an Estimate to an Invoice
When an estimate is marked Accepted, a Convert to Invoice button appears in the estimate header. Clicking it creates a new invoice automatically, copying all line items, VAT settings, terms and client details across. The invoice receives the next sequential INV number.
Document Layout
Both estimates and invoices are printed in A4 portrait format and include the full company block (name, address, Co. No: 52770, TIN: 100027841100, website) and a Prepared For block showing the client's business name, business address, contact name, email and phone.
Estimate Statuses
📝Draft — Work in progress, not shared with client.
📨Sent — Shared with client, awaiting decision.
✅Accepted — Client approved. Project moves to Active.
❌Rejected — Client declined.
Creating an Invoice Manually
Sidebar → Invoices → + New Invoice. Select a project and client, add line items, set the due date and VAT. Mark as Sent when issued to the client. Record payments using the Paid Amount field.
💳 7. Financials — Expenses, P&L & Bank
Sidebar → Financials
The Financials module gives you a full picture of your company's money — expenses, profit and loss, and monthly bank balance history. Access is permission-controlled: admins see everything; finance viewers see expenses and P&L but not bank balances or salary and investment categories.
Adding an Expense
Click + Add Expense in the Financials screen.
Fill in the date, category, and description. If you choose Other, a free-text field appears for you to describe the category.
Select a supplier from your contacts list (or leave blank for company overhead) and optionally link to a project.
Enter the amount (excluding VAT), choose VAT on or off, set payment method, reference number, and status (Paid or Pending).
Attach a receipt or invoice photo — it is compressed automatically and stored securely as your audit trail.
Expense Categories
🧱 Materials👷 Labour
🏗️ Equipment Hire⛽ Fuel & Transport
💼 Professional Fees💡 Utilities
🗂️ Office & Admin📣 Marketing
🛡️ Insurance🔧 Subcontractors
💰 Salaries (admin only)
📈 Investments (admin only)
📋 Other (free text)
Filtering & Searching Expenses
Use the search bar and dropdown filters to narrow expenses by category, project, status (paid or pending), or a date range. The table updates instantly. Searching works across description, category, supplier name, and project name.
Exporting for Your Accountant
Click Export CSV to download a spreadsheet of all visible expenses (respecting your current filters and date range). The CSV includes date, description, category, supplier, project, amount, VAT, total, payment method, reference, and status — everything your accountant needs.
Bank Account — Upload Statement
Admins can click Bank Entry to open the bank entry screen. The quickest way to populate your history is to upload a CSV statement downloaded from CIBC Caribbean online banking:
Log into CIBC Caribbean online banking and download your account statement as a CSV file.
Click 🏦 Bank Entry in the Financials screen.
Click Choose File and select your downloaded CSV, then click Import from CSV.
A preview appears showing each month found in the statement with income, expenses, and closing balance. The closing balance is validated against the statement summary row automatically.
Click Confirm & Import All Months. All months are saved instantly.
You can upload multiple statements (one per month or one covering several months) — re-uploading a month that already exists will update it rather than duplicate it. You can also enter months manually using the form below the upload section if needed.
The bank balance history table is visible only to admins and finance admins. Bank name and address are pre-filled from the statement file.
Profit & Loss
The four stat cards at the top of Financials show your year-to-date income (from paid invoices), expenses, net profit, and outstanding invoice value. Admins also see the current bank balance and unpaid expenses. The figures update automatically as you add expenses and mark invoices paid.
Finance Access Permissions
🔒Admin / Finance Admin — Full access including bank balances, salaries, investments, all exports.
👁️Finance Viewer — Can view and add expenses, see P&L. Cannot see bank balances, salaries, or investments.
🚫Standard users — No access to Financials at all.
Assign finance permissions per user in User Management. Permissions can be toggled without changing the user's role.
📦 8. Supplier Catalogue & Import
Sidebar → External Contacts
Overview
Every contact in your contacts list can have a product catalogue attached to them. This is your master price list for each supplier — what they sell, in what unit, and at what cost price. You can then import directly from any supplier's catalogue into an estimate or invoice, applying a markup per item.
Adding Items to a Supplier's Catalogue
Go to Sidebar → External Contacts and find the supplier.
Click the 📦 Catalogue button on their card.
Click + Add Item and fill in the description, category, unit (bag, tonne, metre, unit etc.), and cost price in BBD.
Click Save Item. The item appears in the catalogue list immediately.
Searching Contacts & Items
The search bar on the Contacts screen searches both supplier names and catalogue item names. Type "cement" to find any supplier who stocks cement, even if their company name doesn't contain the word.
Importing Items into an Estimate
Open an estimate and click Import from supplier in the header.
Choose a supplier from the dropdown. Their catalogue items appear.
Tick the items you want. Enter a quantity for each.
Set your markup — click % for percentage or $ for a fixed amount. You can mix markup types across items in the same import.
The sell price and line total calculate instantly. Click Add to estimate.
The same import works for invoices — open an invoice and the Import from supplier button is available there too.
Pinning a Supplier on the Map
When editing a contact, you will see Latitude and Longitude fields. Enter the supplier's coordinates to pin them on the Project Map. Right-click any location in Google Maps and select "What's here?" to get the coordinates.
🗺️ 9. Project Map
Sidebar → Project Map
The map shows all your pinned projects, clients, and suppliers on a single interactive map of Barbados.
Pin Colours
●Gold — Estimate stage project
●Blue — Completed project
●Teal — Supplier / vendor
Filter Toggles
Use the three checkboxes above the map to show or hide Projects, Clients, and Suppliers independently. Useful when the map is crowded.
Clicking a Pin
Clicking any pin opens a popup with the name, address, and contact details. Project pins have an Open Project button. Supplier pins show their company details.
Pinning a Project
Open a project → Overview tab → Edit Project → scroll to Set Location → drag the pin to the exact location → Save.
Pinning a Client or Supplier
Open their record (Clients or External Contacts) → Edit → enter Latitude and Longitude coordinates → Save. Get coordinates by right-clicking any location in Google Maps → "What's here?".
Projects Without a Pin
A list of un-pinned active projects appears below the map with a direct link to each project's edit screen.
📦 7. Procurement
The Procurement module tracks international purchases through a full 9-stage pipeline specifically designed for Barbados — from identifying a supplier to final delivery to the client.
The 9-Stage Pipeline
🔍 Sourcing→
💬 Quote Received→
✅ Purchase Approved→
📦 Order Placed→
🚢 Shipped to Freight→
🌊 In Transit→
🇧🇧 Arrived in Barbados→
🏪 Ready for Delivery→
🎯 Delivered
Creating a Procurement Order
Click Procurement → + New OrderFill in title, category, client, associated project, priority, and supplier details.
Add itemsUse the Items section to list what is being ordered with quantities and unit prices.
Fill in financialsEnter shipping cost, insurance, customs duty, handling fee, VAT amount, and client charge. The system calculates totals and your margin automatically.
Enter tracking infoAs the order progresses, enter the Freight Forwarder, Shipment Reference, Bill of Lading, Container Number, Vessel Name, Port of Origin, and ETA Barbados. All tracking fields auto-save when you click away from each field — no save button needed.
Advance the stageClick the → [Next Stage] button in the header. A confirmation modal opens with an optional note. After confirming, the platform asks if you want to send the client an email update.
Save All Changes
The 💾 Save All Changes button in the order header saves financials, tracking, timeline, and notes in a single action — useful before navigating away.
Emailing the Client from Procurement
Procurement → Open Order → 📧 Email Client (header)
Opens the email compose modal pre-filled with the procurement update template, order number, and current stage. Also available automatically after every stage advance.
⚠️The Purchase Approved stage requires the Manager or Admin role. Estimators and Field Staff cannot approve purchases.
Order History
Every stage change and manual note is recorded in the History & Activity card at the bottom of each order. This creates a complete audit trail with timestamps and the name of who made the change.
🤖 8. Material Pricing & AI Search
Your Price Library
Sidebar → Material Pricing
Save standard prices for materials and labour rates specific to your work. These feed directly into estimate line items so you never have to look up prices twice.
AI Barbados Price Search
The AI search tool at the top of the Material Pricing page accepts a plain-English query and returns estimated Barbados market prices, typical local suppliers, and relevant notes.
Type your queryExamples: "roofing nails galvanised", "PVC 4-inch fittings", "electrical conduit 20mm", "painted blockwork per sq ft"
Click Search Barbados MarketThe AI returns 2–4 items with BBD prices, supplier suggestions (Bhagwansingh's, BS&T, Brydens, etc.), and any relevant notes.
Add to your libraryClick + Add to List on any result to save it to your price library for reuse in estimates.
💡Requires an AI API key. Go to Settings → AI & Integrations and add your key. OpenRouter (openrouter.ai) is recommended for Barbados — it accepts international credit cards. Get a key starting with sk-or-. Anthropic direct (console.anthropic.com) is US/UK billing only, key starts with sk-ant-.
Rates Library
Sidebar → Material Pricing → Rates tab
Store standard labour rates (daily rate, hourly rate per trade) separately from material prices. Rates can be pulled directly into estimates as line items.
📧 9. Email & Templates
Where to Send Emails
📁Projects → Open Project → Overview → 📧 Email Client
Send any template to the project client.
📦Procurement → Open Order → 📧 Email Client
Send a procurement update to the order client.
🔄After stage advance — Automatically prompted when you advance a procurement order stage. Click OK to open compose, Cancel to skip.
👥User Management → 📨 Invite
Send a platform invitation to a new team member.
Built-in Templates
📊
Project Update
General progress update to a client about their project.
💰
Estimate
Sends the estimate for client review and acceptance.
📦
Procurement Update
Update on a shipment or order stage change.
🧾
Invoice
Invoice notification with payment terms.
✏️
Custom
Blank compose for any custom message.
Creating Custom Templates
Settings → Email Templates → + New Template
Click + New TemplateEnter a name for your template (e.g. "Site Visit Confirmation").
Edit the templateClick your new template chip to select it. Edit the subject line and body in the editor below. Variables like {clientName} and {projectName} are substituted automatically.
SaveClick Save Template. It now appears in the email compose modal for all users.
DeleteClick the ✕ on the template chip in the Settings editor to remove a custom template. Built-in templates cannot be deleted but can be reset to defaults.
Email Attachments
The email compose modal includes an Attachment field. Attach any PDF, image, Word document, or Excel file up to 5MB. The file is base64-encoded and embedded as a download link in the email body — recipients can click to save it directly from their email client.
💡Requires a Resend API key configured in Settings → Email Settings. See the installation guide for DNS setup instructions.
💬 10. Team Chat
Team Chat is an internal messaging system between all P3CL platform users. It is not visible to clients.
Sidebar → 💬 Team Chat
Features
💬Message bubbles — Your messages appear on the right in gold tint. Other users' messages appear on the left with their initial.
↩Reply to a message — Hover any bubble and click ↩ Reply. A reply bar appears above the compose box showing what you are replying to.
📎Attach files — Click the 📎 paperclip to attach an image or document (max 5MB). Images display inline in the chat. Other files appear as download links.
🔗Links — Any URL typed in a message becomes a clickable link automatically.
✏️Edit your message — Hover your bubble and click ✏️ to edit. The message is marked as "edited" after saving.
🗑️Delete your message — Hover your bubble and click 🗑️. Deleted messages are removed from all devices.
Message Delivery
The chat status bar shows the delivery mode:
●Live (green) — WebSocket connected. Messages arrive instantly, typically within 1 second.
↻Polling (amber) — WebSocket unavailable (network change, device sleep). Messages are checked every 5 seconds automatically.
⚡Local only (yellow) — Supabase not configured. Messages save locally but do not reach other users.
The system automatically switches between live and polling modes and reconnects when your device wakes from sleep or regains network access.
✅On mobile: touch and hold a message bubble to show the action buttons (Reply, Edit, Delete).
🔔 11. Notifications
The notification bell (🔔) in the topbar shows recent activity across the platform. A red dot indicates unread notifications.
Notification Types
🎯Milestone completed — A project milestone was marked done.
💰Estimate accepted — A client accepted an estimate.
📦Procurement stage change — An order moved to a new pipeline stage.
🇧🇧Order arrived in Barbados — Shipment has cleared customs.
🎯Order delivered — Item delivered to client.
💬New chat message — Team member sent a message in Team Chat.
Browser push notifications are sent automatically for new chat messages. You may need to grant notification permission on first use.
👤 12. User Management
Sidebar → User Management
Only Administrators can access User Management.
User Roles
👑Administrator — Full access to everything including financials, bank balances, salaries, user management.
🏗️Project Manager — Full project, estimate, and procurement access. Can view expenses and P&L but not bank balances.
📋Estimator — Projects, estimates, rates and pricing only.
👷Field — View projects and plans only.
👁️Viewer — Read-only access to projects, estimates, and procurement.
Finance Permissions
Three finance permissions can be toggled independently per user regardless of their role:
💳View Financials — Can see expenses and P&L. Does not include bank balances, salaries, or investments.
✏️Add / Edit Expenses — Can create and update expense records and attach receipts.
🔒Finance Admin — Full financial access including bank balances, salaries, and investments. Admins have this automatically.
| Role | Access Level |
| Administrator | Full access to all modules including User Management and Settings. Can create, edit, and delete users. |
| Project Manager | Full project and procurement access. Cannot manage users or change platform settings. |
| Estimator | Access to estimates, pricing, and rates only. Cannot view procurement or user management. |
| Field Staff | Can view projects and update tasks and photos. Read-only on estimates and procurement. |
| Read Only | Can view all data across the platform but cannot create, edit, or delete anything. |
Adding a New User
Click + Add UserFill in full name, email address, role, and a temporary password.
Send the inviteClick 📨 Invite on their user card. Confirm the platform URL, enter their temporary password, and click Send Invite Email. They receive a branded email with instructions.
First loginThe user opens the platform link in their email, taps Refresh accounts from cloud, enters their email and temporary password, then sets their own personal password.
Editing a User
Click ✏️ Edit on any user card to change their name, email, or role. Click 🗑️ Delete to remove them. You cannot delete your own account.
⚠️Passwords are stored locally per device for security. If a user forgets their password they should use the temporary password from their invite email, or you can set a new temporary password by editing their account and re-sending an invite.
⚙️ 13. Settings
Sidebar → Email & Notifications
Email Settings
Paste your Resend API key and confirm the sender email (info@p3cl.com). Click Save then Send Test Email to verify. All client emails are sent from here.
AI & Integrations
Paste your AI API key (OpenRouter sk-or-... or Anthropic sk-ant-...). The status line confirms which provider is active. Required for AI Barbados Price Search and the AI Project Manager assistant.
Cloud Sync (Supabase)
Enter your Supabase Project URL and anon key. Click Test Connection — you should see all 13 tables confirmed green. Click Save. The sync dot in the topbar turns green when connected.
Email Templates Editor
Select any template chip to edit its subject and body. Click Save Template. Click + New Template to create a custom one. Click Reset to restore a template to its factory default.
Notifications Settings
Enable or disable specific notification types. Browser notification permission must be granted for push notifications to work on your device.
☁️ 14. Sync & Offline
How Sync Works
The platform uses a layered sync approach. All data is saved to your device's local IndexedDB database instantly (no internet required). When Supabase is connected, changes are pushed to the cloud immediately after every save. A full background sync runs every 5 minutes to catch anything missed. The retry queue attempts failed writes every 30 seconds.
Reading the Sync Dot
●Green / solid — All data synced successfully.
◉Blue / pulsing — Sync in progress.
●Amber — Pending writes in queue, will retry shortly.
●Red — Error. Tap the dot for details and to reconfigure.
Manual Sync
Tap the sync dot in the topbar at any time to open the sync panel. Click Sync Now to force an immediate full sync.
Multi-Device Use
Each device stores its own password locally. When using the platform on a new device:
- Open the platform URL
- Connect Supabase (tap ⚙️ at the bottom of login)
- Tap 🔄 Refresh accounts from cloud
- Log in — you will be asked to set a password for this device
Database Version Updates
When a platform update changes the database structure, you will need to clear site data on every device before the update takes effect:
Desktop ChromeF12 → Application tab → Storage → Clear site data → Confirm. Then Ctrl+Shift+R to hard reload.
MobileSettings → Apps → Chrome → Storage → Clear data. Then reopen the platform URL.
⏱️ 16. Timesheets & Labour Tracking
Track hours worked by staff on each project. Labour costs are calculated automatically and feed into your project financials.
1
Navigate to Timesheets Click Timesheets in the sidebar under the Financials section.
2
Log time Click + Log time. Select the project, enter a description of work, the date, hours worked, and hourly rate. The labour cost calculates automatically.
3
View summaries The screen shows your hours and cost for the current month, plus team totals broken down by project.
4
Export CSV Click Export CSV to download a full timesheet report for your accountant or payroll.
💡 Labour rates from your Labour Rates screen pre-fill the hourly rate field automatically when logging time.
📋 17. Purchase Orders
Create formal purchase orders linked to suppliers and projects. Track status from draft through to received.
1
Navigate to Purchase Orders Click Purchase Orders in the sidebar.
2
Create a PO Click + New PO. Select a supplier and project, enter a description of items, total amount, and expected delivery date.
3
Track status Click any PO to open its detail. Update the status as it progresses — Draft → Sent → Approved → Received. Status changes are synced across all devices.
4
Print PO Click Print PO from the detail view to generate a formal A4 purchase order document with your company header, ready to send to the supplier.
5
Check price variances Click 📊 Price variances to see where actual expenses differ from your catalogue prices by more than 10%.
📈 18. Cash Flow Forecast
A 90-day projection of your cash position broken into weekly buckets, automatically populated from your outstanding invoices and recurring expenses.
1
Navigate to Cash Flow Click Cash Flow in the sidebar. The opening balance pulls automatically from your most recent bank statement.
2
Review the forecast Inflows come from outstanding invoices with due dates. Outflows come from your active recurring expense templates. Click any week row to expand and see the individual items driving that week.
3
Add manual entries Click + Add entry to add expected income or payments not yet in the system — a deposit you are expecting, a large payment coming up, anything.
4
Watch for warnings A red warning banner appears if the balance goes negative at any point in the 90-day window — act early to collect outstanding invoices or defer payments.
5
Print Click 🖨️ Print to generate a landscape A4 cash flow report suitable for your accountant or a bank meeting.
🏢 19. Company Administration
Central record of everything the company owns and is responsible for. Accessible to admins, company admins, and finance admins.
1
Company Info tab Edit your company name, registration number, TIN, address, contact details, VAT number, and banking details. All changes flow through to invoices and estimates immediately.
2
Assets tab Add every item the company owns — laptops, vehicles, equipment, furniture. Each asset tracks make, model, serial number, purchase date, cost, assigned staff member, condition, and warranty expiry. Depreciation (straight-line or reducing balance) calculates automatically. Export the register as CSV for your accountant.
3
Insurance tab Add each insurance policy with insurer, policy number, coverage type, coverage amount, premium, and renewal date. Upload the actual policy PDF directly to each record. The platform alerts you 30 days before any policy is due for renewal.
4
Corporate Docs tab Upload company-level documents — Certificate of Incorporation, Tax Compliance Certificate, NIS registration, banking documents, licences. Separate from project documents. Set expiry dates on certificates to receive renewal alerts.
💡 The platform checks insurance renewals once per day on login and sends an email alert to your staff email when any policy renews within 30 days.
📑 20. Accountant & Financial Reports
Formal financial statements and the automated monthly Accountant Finance Pack — everything your accountant needs, prepared automatically.
1
Set up your accountant profile Go to Company Admin → Accountant tab. Enter your accountant's firm name, contact name, email address, and a CC email for your own records. Also enter the engagement reference if your accountant uses one.
2
Monthly Accountant Finance Pack On the 5th of every month you receive a notification: "Your October Accountant Finance Pack is ready." Open it, review the summary of income, expenses, net profit and VAT, and click Approve & Send to accountant. The pack is emailed to your accountant with you CC'd. Nothing is sent without your explicit approval.
3
Prepare a pack manually In the Accountant tab, select any month and year and click Prepare finance pack to generate a pack for any historical period.
4
Financial Statements Go to Company Admin → Financial Statements tab. Set a date range and print any of the three statements — Income Statement, Balance Sheet, or Cash Flow Statement. All are marked "Unaudited — for management purposes only."
5
Accountant Report Pack For a full export go to the Accountant screen in the sidebar. This gives you a date-range selector, a live preview, and five export options — full PDF report, income CSV, expenses CSV, VAT summary CSV, and bank reconciliation CSV.
💡 The Income Statement, Balance Sheet and Cash Flow Statement are management accounts — they give your accountant a starting point but do not replace a professionally audited set of financial statements.
📦 22. Client Portal — Procurement Tracking
Clients can now track the progress of their procurement orders directly from their portal at portal.p3cl.com. This gives clients real-time visibility into where their materials are without exposing any internal cost or pricing information.
What clients can see
When a procurement order is linked to a project that belongs to a client, it appears automatically on the client's Procurement tab. For each order the client sees:
- The order number (e.g. PO-2026-A1B2C)
- Each individual line item — description and quantity
- The portal status of each line item as a coloured badge
- A progress bar showing how many items have been delivered
Clients do not see supplier names, unit costs, total amounts, or any internal notes. Only the order number, item descriptions, quantities, and statuses are visible.
The six portal statuses
1
Ordered — The order has been placed with the supplier. Shown in blue.
2
In Transit to Barbados — The item has shipped and is on its way. Shown in amber.
3
Arrived — The item has arrived in Barbados. Shown in green.
4
Preparing for Delivery — The item is being prepared to deliver to the client's site. Shown in purple.
5
Delivered — The item has been delivered to the client's site. Shown in teal.
6
Closed — The item is complete and the order is closed. Shown in grey.
Updating item statuses (staff)
1
Go to Procurement in the sidebar and open the order you want to update.
2
In the Line Items table you will see a Portal Status column with a dropdown for each item.
3
Select the correct status from the dropdown — it saves automatically. The client's portal view updates immediately.
Which orders appear on the portal
Only orders with a Project assigned will appear on the portal, and only for the client linked to that project. Internal orders without a project assigned are never visible to clients. This means your normal workflow continues unchanged — simply assign the project when creating an order that the client should be able to track.
💡 You can update multiple line item statuses at once on the order detail screen — just change each dropdown in turn. Each change saves instantly without needing to click Save.
🧾 23. Payment Receipts
When a client payment is received, you can generate a professional payment receipt with a unique receipt number. The receipt formally acknowledges the payment and gives the client a reference document for their records.
Logging a payment
1
Go to Invoices and open the invoice you have received payment against.
2
In the Payment History card on the right, fill in the amount, date, payment method, and reference number.
3
Click Save payment. The payment is logged and the invoice balance updates automatically. If the invoice is fully paid, the status changes to Paid.
Generating a receipt
1
After logging a payment, a Generate Receipt button appears next to that payment in the Payment History list.
2
Click it to generate a PDF receipt. The receipt is assigned a unique number in the format REC-0001, incremented automatically for each new receipt.
3
Review the receipt in the preview. When you are satisfied, click Send / Download Receipt to download the PDF or email it to the client.
What the receipt contains
- Receipt number (e.g. REC-0001)
- Payment date and method
- Amount received in BBD
- Reference to the original invoice number
- Project name and client details
- Company letterhead and contact information
💡 Receipts are always reviewed manually before sending. The platform never sends a receipt automatically — you stay in full control of what goes to the client.
🔐 25. Client Portal — Invite Email, Password Setup & Reset
Clients access portal.p3cl.com using a simple email and password. The first time they are invited, a magic link gets them straight in. From that point forward they manage their own password directly on the login screen — no emails, no tokens, no expiry.
The portal invite email
When you send a portal invite from a client record, the client receives a branded onboarding email with the subject line "Your client portal is ready". The email contains:
- A personalised greeting with the client's name
- A clear explanation of what the portal gives them access to
- A prominent Access My Portal button linking to their unique one-time login link
- Step-by-step instructions for setting a password and signing in on future visits
- Instructions for resetting a forgotten password directly on the login screen
- Your company contact details at the bottom
💡 The invite link expires in 24 hours and can only be used once. If a client misses the window, go to their portal tab and click Send login link to send a fresh one.
First time — clicking the invite link
1
The client clicks Access My Portal in the invite email and is taken straight into the portal — no password required on first access.
2
To set a password for future logins, the client signs out and clicks "Set / Reset my password" on the login screen at portal.p3cl.com.
3
They enter their email address, choose a password of at least 8 characters, confirm it, and click Save password & sign in. They are logged straight in.
4
On every future visit the client goes to portal.p3cl.com, enters their email and password, and signs in independently.
Forgot password — self-service, no email required
1
The client clicks "Set / Reset my password" on the portal login screen.
2
They enter their email address, choose a new password, confirm it, and click Save password & sign in.
3
If the email matches their portal account, the new password is saved and they are logged straight in. No email or link is required.
💡 No action is ever required from you for password resets. Clients handle it entirely themselves on the login screen at any time.
Deploying portal updates
The client portal at portal.p3cl.com is a separate Netlify site from the staff platform. Any time the portal is updated it must be deployed with its own command in addition to the main app deploy:
netlify deploy --dir=p3cl-portal --prod --site da5e80a8-5f54-44dd-9f9e-b8200cb25593
💡 Passwords are stored as SHA-256 hashes — the actual password is never visible to anyone. There is no way to recover a forgotten password, only to set a new one via the login screen.
⚡ 26. API Health Check & Auto-Sync
The platform now runs automatic checks on login to make sure all connected services are working. This removes the need to manually verify connections each time you log in on a different device.
Auto-sync on login
Every time you open the staff platform and the login screen appears, the app silently pulls the latest user accounts from Supabase in the background. This means that if a new staff member was added on another device, their account is available immediately without you needing to click Refresh accounts from cloud. The login screen also shows a green "✅ Supabase connected — syncing automatically" status when your connection is already configured.
API health check on login
Eight seconds after you sign in, the platform silently checks three services:
- Supabase — confirms multi-device sync is active
- Email (Resend) — confirms your API key is saved and emails can be sent
- AI Assistant — confirms your Anthropic or OpenRouter API key is saved
If all three are configured, nothing happens — the check runs and passes silently. If anything is missing, a warning toast appears at the bottom of the screen listing which services need attention, and a notification is logged in the bell so you can come back to it. Both point you to Settings to resolve the issue.
Fixing a failing service
1
Go to Settings from the sidebar.
2
For Supabase — your URL and key are stored in your browser. If you are on a new device, click Reconfigure connection on the login screen and enter your Supabase URL and anon key.
3
For Email — go to Settings → Email Integration and enter your Resend API key, then click Save. The key is now also stored in Supabase so portal password resets work automatically.
4
For AI Assistant — go to Settings → AI Integration and enter your OpenRouter or Anthropic API key, then click Save.
💡 API keys are stored in your browser's local storage per device. If you switch devices or clear your browser data you will need to re-enter them. Supabase credentials only need to be entered once per device — everything else in the platform syncs automatically after that.
🛃 28. Import Cost Calculator
The import cost calculator lets you identify the true landed cost of any item purchased from outside Barbados, including all applicable duties, levies, VAT, and shipping before you commit to the order. This ensures your client pricing reflects your actual costs.
Marking Items as Imported or Local
Every line item on a procurement order has a Source column with an Imported / Local toggle. Click the toggle to switch between the two. Items marked as Imported will have the full duty calculation applied. Items marked as Local skip all import charges — only VAT applies if selected.
1
Open a procurement order from Procurement → Orders.
2
In the items table, find the Source column. Each item shows either an amber Imported badge or a green Local badge.
3
Click the checkbox next to any item to toggle it between Imported and Local. The badge updates immediately and saves automatically.
4
Scroll down to the Financials card and click ⚡ Calculate Import Costs.
5
The system automatically populates Shipping, Customs Duty, VAT, and Handling Fee fields based on each imported item's category and the current duty rates. Click Save Financials to confirm.
How the Calculation Works
1️⃣Item cost in BBD — supplier price converted from USD, GBP, EUR, CAD, TTD, or BBD using fixed exchange rates.
2️⃣Shipping (20% default) — added to item cost. Adjustable per order in the Financials card.
3️⃣Insurance (1.5% default) — added to item cost.
4️⃣CIF value — Cost + Insurance + Freight. This is the taxable base for all duties.
5️⃣Customs duty — applied to CIF at the category rate (e.g. Construction 5%, Electrical 10%, Furniture 20%).
6️⃣Environmental levy — 1% on CIF.
7️⃣Foreign exchange fee — 2% on CIF.
8️⃣VAT (17.5%) — applied to CIF plus customs duty. Captured in financials as recoverable if VAT-registered.
9️⃣Customs broker fee — BBD $250 flat per order (not per item). Goes into the Handling Fee field.
💡 All calculations use non-CARICOM rates (full CET). Goods from CARICOM member states may qualify for reduced rates — adjust manually in the Financials card if needed.
📄 29. Delivery Notes
A delivery note is generated when a procurement order reaches Preparing for Delivery status. It accompanies the physical delivery and is signed by the site supervisor or client as confirmation of receipt. No pricing appears on the delivery note — it is a logistics document only.
Generating a Delivery Note
1
Open a procurement order and advance its status to Preparing for Delivery or Delivered.
2
A 📄 Delivery Note button appears in the order header alongside the other action buttons.
3
Click the button. A print-ready document opens in a new tab.
4
Before printing, edit the Qty Delivered fields if any items were short-delivered, and set the Condition for each item (Good, Partial, or Damaged).
5
Add any notes in the Remarks box — for example, a second delivery run scheduled for short items.
6
Click Print or use Ctrl+P. Set the destination to Save as PDF to keep a digital copy, or print directly for the site supervisor to sign.
What the Delivery Note Contains
🏢
Company header
Your company name, address, and contact details pulled from Settings.
🔢
DN number
Sequential DN-0001 format, separate from the PO number. Each delivery gets its own unique reference.
📋
PO reference
Links back to the original purchase order for full traceability.
📦
Line items
Description, quantity ordered, quantity delivered (editable), and condition per item.
📝
Remarks box
Free-text field for delivery notes, shortfalls, or follow-up actions.
✍️
Signature blocks
Delivered by (pre-filled with your name) and Received by (blank for client signature).
💡 Supplier names and pricing never appear on the delivery note — it is intended for the client and site team only.
📊 30. Import Duty Rates Management
Barbados customs duty rates can change. The platform reminds you to check rates monthly and allows you to update them in one place without touching any code.
Monthly Rate Check Reminder
On the first login of each month, if any procurement orders contain imported items, a bell notification appears reminding you to verify that current duty rates are still accurate. The notification includes direct links to the two official sources:
🔗PwC Barbados Tax Summary — updated every January, covers all import duties, levies, and VAT rates.
🔗Barbados Customs and Excise Department — official tariff schedules and HS code classifications.
Updating Duty Rates
1
Go to Settings from the sidebar.
2
Scroll to the Import Duty Rates section at the top of the Settings page.
3
Edit any category rate as needed. Current categories and default rates are shown below.
4
Click Save Duty Rates. All future import calculations will use the updated rates immediately.
5
Click ✅ Mark as verified today to record that you have reviewed the rates. This clears the monthly reminder until the following month and stamps the verification date.
Default Duty Rates (Non-CARICOM)
🧱Construction materials — 5%
⚡Electrical equipment — 10%
🪑Furniture & fittings — 20%
💻IT equipment / tech — 10%
💡 The environmental levy (1%), foreign exchange fee (2%), and VAT (17.5%) are fixed statutory rates set by the Government of Barbados and are updated separately if the law changes.
🔑 31. Portal Password Activity Log
Every time a client sets or resets their password through the Client Portal, the action is logged and visible to your staff in the main platform. This provides a full audit trail of portal access activity without requiring access to Supabase.
Viewing the Activity Log
1
Go to Clients from the sidebar.
2
Click the 🌐 Portal button on any client card that has a portal account.
3
In the modal that opens, scroll down to the Portal password activity card.
4
Each entry shows the timestamp, the email address used, and the type of action.
Badge Types
🔑Password set via portal (green) — the client used the "Set / Reset my password" screen on the portal login page to set or change their password directly.
✅Magic link sent (green) — a login link was sent to the client via email from the staff platform.
❌Send failed (red) — a magic link email was attempted but the email delivery failed. Check the email integration settings.
💡 The log shows the 10 most recent entries per client, sorted newest first. It reads directly from Supabase so it always reflects the latest activity even if another staff member made changes on a different device.
💡 27. Tips & Shortcuts
⌨️
Chat: Send with Enter
Press Enter to send a chat message. Press Shift+Enter to add a new line without sending.
💾
Tracking auto-saves
Procurement tracking fields save automatically when you tab away — no need to click Save Tracking every time.
📝
Notes auto-save
Order notes save automatically when you click out of the text area.
📄
Estimate as PDF
Open an estimate, click Print/PDF, then use the browser's print dialog — set destination to "Save as PDF".
🔄
Stage email auto-prompt
Every procurement stage advance automatically offers to email the client — saves a separate email step.
🔍
Search and filter
Every list view (Projects, Estimates, Procurement, Clients) has live search and dropdown filters.
📊
AI project manager
Inside any open project, the AI tab gives you an AI advisor with full project context — status reports, risk analysis, client emails, and more.
📱
Mobile touch tip
On mobile, touch and hold any chat bubble to reveal the reply, edit, and delete action buttons.
Troubleshooting Quick Reference
❓Login fails — "No account found" → Tap 🔄 Refresh accounts from cloud first.
❓Sync dot stays red → Tap it → Setup → re-enter Supabase URL and key → Test → Save.
❓AI search says "No API key" → Settings → AI & Integrations → paste key → Save Key.
❓Email test fails → Resend domain verification is pending. Check Resend → Domains for green ticks. DNS can take up to 24 hours.
❓Procurement order shows wrong stage after advancing → Tap the sync dot → Sync Now. Stage advances are saved immediately but the display refreshes on sync.
❓Chat shows ↻ polling instead of ● live → This is normal on mobile networks. Messages still arrive within 5 seconds. The indicator will return to ● live when the connection stabilises.