Pinley Mechanical — Sprint 3 Demo & Sprint 4 Planning¶
Date: March 24, 2026 Attendees: Conor Halpin (HVAC Construction Inc.), Development Team Project: Pinley Mechanical — Insurance Compliance & Construction Project Management Platform
1. Current Status¶
What's Complete¶
| Component | Status |
|---|---|
| Auth (Login / Forgot Password / Reset / Verify) | COMPLETE (Backend + Frontend) |
| Invite User Flow (admin creates user → email → set password) | COMPLETE (Backend + Frontend) |
| User CRUD (list, add, edit, view, roles) | COMPLETE (Backend + Frontend) |
| Role & Permission System (5 roles, 32 permissions) | COMPLETE |
| Email Templates (verify, reset, invite) | COMPLETE |
| Subcontractor CRUD + Contacts | COMPLETE (Backend + Frontend) |
| Broker CRUD + Contacts | COMPLETE (Backend + Frontend) |
| Vendor CRUD + Contacts | COMPLETE (Backend + Frontend) |
| Client CRUD + Contacts | COMPLETE (Backend + Frontend) |
| Project CRUD (list, add, edit, PM dropdown) | COMPLETE (Backend + Frontend) |
| Settings — Users + Roles & Permissions | COMPLETE (Backend + Frontend) |
| Sidebar Navigation (collapsible + project switcher) | COMPLETE |
| Dark/Light Theme (persistent toggle) | COMPLETE |
| 45+ Domain Models | Registered & Seeded |
| 15 Proto Definitions (all wired end-to-end) | COMPLETE |
Overall Progress: ~25%¶
The foundation and all CRUD scaffolding is production-ready. Authentication, RBAC (5 roles, 32 permissions), the entire data layer (45+ models), and full frontend CRUD for all directory entities and projects are complete. What remains is business logic modules (COI, compliance, documents, incidents, indemnity), detail pages, integrations, bids, tasks, and the dashboard.
2. Sprint 3 Accomplishments¶
- Directory UI for all 4 entity types (Subcontractors, Brokers, Vendors, Clients) with tabbed layout
- Add/Edit/View modals with embedded contacts management (ContactsTable)
- Project CRUD with project manager dropdown
- Auth redesign — dark themed login pages, admin-creates-user flow (no self-registration)
- Email notifications with auto-login for forgot password and invite flows
- Sidebar navigation with collapsible state and project switcher
- Dark/light theme with persistent toggle
- Settings pages — Users list + Roles & Permissions cards
3. Demo Walkthrough¶
Recommended order (~20 min):
- Auth Flow (3 min) — Dark-themed login, invite user flow (Settings → Users → Add → email sent → user sets password → auto-login)
- Dark/Light Theme (1 min) — Toggle from profile dropdown, persists across sessions
- Sidebar Navigation (2 min) — Collapsed/expanded states, global nav groups, admin-only Settings
- Project Switcher (2 min) — Click "Select Project" → searchable modal → select → sidebar adds project-scoped section (Subcontractors, Insurance, Documents, Compliance, Tasks, Incidents, Indemnity) → clear with X button
- Directory (4 min) — Tabbed layout, add subcontractor, view with contacts table, add contact
- Projects (3 min) — List, add with PM dropdown, edit, status badges
- Settings (2 min) — Users list with role filter, Roles & Permissions cards
4. Sidebar UX Deep-Dive¶
Global Navigation (always visible): - Dashboard, Projects, Directory (→ Subcontractors, Vendors, Clients, Brokers), Bids, Tasks, Settings (admin only → Users, Roles & Permissions)
Project Switcher: - Button at top of sidebar, below logo - Opens modal with searchable project list - Shows project initials badge + name when active - X button to clear selection
Project-Scoped Navigation (appears when project selected): - Divider + project name header - Subcontractors, Insurance, Documents, Compliance, Tasks, Incidents, Indemnity - All scoped to the selected project
Collapsed Mode: Icon-only with tooltips, project switcher becomes icon button
5. Revised Development Plan — 3 Parallel Streams¶
With a new developer onboarding in Sprint 4, the remaining work is organized into three concurrent streams. This allows Bids and Tasks — originally planned as post-launch — to ship at MVP alongside core compliance features.
Stream A — Core MVP (Lead Dev) Projects → COI → Documents → Compliance → Incidents → Indemnity + Dashboard
Stream B — Bids (New Dev + Lead Dev) Proto + Models → Backend → Pipeline UI → Detail → Analytics
Stream C — Tasks (New Dev) Proto + Models → Backend → Kanban UI → Auto-generation → Integration
Sprint Timeline¶
| Sprint | Dates | Stream A (Core MVP) | Stream B (Bids) | Stream C (Tasks) |
|---|---|---|---|---|
| 3 ✅ | Mar 16-27 | Directory UI + Contacts + Project CRUD + Auth + Sidebar + Theme | — | — |
| 4 | Mar 30 - Apr 10 | Project Detail + Google Places* + COI proto/backend | Bid proto + models + backend scaffolding (new dev onboarding) | Task proto + models + backend scaffolding (new dev onboarding) |
| 5 | Apr 13-24 | COI UI + Documents** + Compliance start | Bid Pipeline UI + Detail page | Task Kanban UI + creation + filters |
| 6 | Apr 27 - May 8 | Compliance engine + Incidents + Indemnity (upload-only) | Bid import + line items + project number linking | Auto-generated tasks + cross-module links |
| 7 | May 11-22 | Renewal workflows + Email service + auto-create contacts on send | Bid vendor management + sub suggestions from COI | Task reporting + dashboards + team auto-suggest |
| 8 | May 25 - Jun 5 | Dashboard + External Portal + Audit Log + role process visualization | Bid reporting + edge cases + integration testing | Task cross-module testing + bug fixes |
| 9 | Jun 8-27 | UAT + Launch Prep | UAT + Launch Prep | UAT + Launch Prep |
* Blocked on Google Places API key from client ** Blocked on Azure Blob Storage credentials from client
Key notes:
- Sprint 4 is onboarding sprint — new dev ramps up on Bids/Tasks (proto, models, backend scaffolding)
- Lead dev focuses on core MVP (Stream A) and supports new dev
- Sprints 8-9 have structured QA and launch prep for all streams
Post-Launch Roadmap (after Sprint 9):
| Feature | Target | Notes |
|---|---|---|
| SharePoint document auto-sync | Sprint 10 | Two-way sync with SharePoint libraries |
| Outlook/email integration | Sprint 11 | Read incoming emails, flag missing/wrong format documents |
| Advanced role-based workflows | Sprint 11 | Different workflow paths per role (beyond permission gating) |
| Subcontractor types/roles within companies | Sprint 10 | Expand beyond trade field to role classification |
| Advanced analytics + reporting | Sprint 12 | Cross-module reporting and insights |
Timeline Comparison¶
| Milestone | Original Plan | Revised Plan | Delta |
|---|---|---|---|
| MVP Launch | May 8 | Jun 27 | +7 weeks |
| Tasks Module | Jun 5 (post-launch) | Jun 5 (in MVP) | Included at launch |
| Bids Module | Jul 3 (post-launch) | Jun 5 (in MVP) | Included at launch |
The MVP launch moves out 7 weeks, but it now includes Tasks and Bids — both originally post-launch. Significantly more value delivered at launch.
6. Sprint 4 Plan¶
New Developer Onboarding (first 2-3 days): - Environment setup, architecture walkthrough - First tasks: Bid and Task proto definitions + model registration (low-risk, learns all layers)
Stream A (Lead Dev): Project Detail page, project-party linking, Google Places (if key provided), COI proto + backend Stream B (New Dev + Lead Dev): Bid proto + models + backend CRUD scaffolding Stream C (New Dev): Task proto + models + backend CRUD scaffolding
7. What You Get at Launch¶
- Full authentication and role-based access control (5 roles, 32 permissions)
- Project management with team assignments
- Directory — Subcontractors, Brokers, Vendors, Clients with contacts
- COI management with compliance checking
- Document management (Azure Blob Storage)
- Incident tracking and indemnity agreements
- Bid management with pipeline view and analytics
- Task/Kanban board with auto-generation from project events
- Dashboard and reporting
- Email notifications
- External subcontractor portal
8. Decisions Needed¶
Priority 1 — Blocking Sprint 4¶
| # | Decision | Recommendation | Impact if Delayed |
|---|---|---|---|
| 1 | Google Places API key + plan | Provide API key. Question: Autocomplete only, or autocomplete + map? | Blocks location fields. Sprint 4 ships without addresses. |
| 2 | Azure Blob Storage credentials | Provide connection string or account key. | Blocks document management entirely (Sprint 5). |
Google Places Trade-off:
| Autocomplete Only | Autocomplete + Map | |
|---|---|---|
| UX | Type address → dropdown suggestions → select | Same + interactive map showing pin |
| Effort | ~2-3 days | ~5-7 days |
| Cost | ~$2.83/1K requests | +$7/1K map loads |
| Recommendation | Start here — sufficient for compliance workflows | Add later if team needs visual location context |
Priority 2 — Confirm/Clarify¶
| # | Decision | Context | Our Understanding |
|---|---|---|---|
| 3 | Broker entity — keep or remove? | Full CRUD is built (list, add, edit, contacts). Earlier decision said "remove" but it's fully functional. | Recommend: keep it. Zero cost since it's built. Remove from nav if not needed. |
| 4 | Cost/Claims module — still needed? | Earlier (March 10) you confirmed keeping claims + costs for incident tracking. Want to re-confirm since you mentioned possibly removing it. | Current plan: keep for historical reporting. Simple UI, robust backend. |
| 5 | Indemnity — upload-only confirmed? | Our plan: PM uploads template PDF, sub downloads/signs/uploads back. No clause processing, no additional terms. | Confirm this is correct. Multiple indemnities per project supported. |
Priority 3 — Before Sprint 5¶
| # | Decision | Recommendation |
|---|---|---|
| 6 | Email service provider | SendGrid (free tier for dev, built-in deliverability monitoring) |
| 7 | Navigation hierarchy | Demo today — does sidebar match your workflow? |
Priority 4 — Before Sprint 6¶
| # | Decision | Notes |
|---|---|---|
| 8 | Bid feature priority | Critical for launch vs nice-to-have? |
| 9 | Task feature priority | Same question |
| 10 | SharePoint integration | Recommend post-launch (Sprint 10) |
| 11 | External portal timing | Recommend internal-first (Sprint 8) |
| 12 | UAT ownership | Who on HVAC Construction Inc. side leads testing? |
9. Risks¶
| Risk | Mitigation |
|---|---|
| Google Places API key not provided | Build forms without address, retrofit later (+1 sprint rework) |
| Azure credentials delayed | Sprint 5 re-scopes to COI + Compliance without doc upload |
| New dev ramp-up slower | Stream B/C tasks scoped small; lead dev absorbs overflow |
| Broker entity ambiguity | Clarify today — full CRUD exists, easy to keep or remove |
10. Highlights to Emphasize¶
- Enterprise auth — Admin invites by email, user clicks → sets password → auto-logged in. No self-registration.
- Dark/light theme — Polished, persistent, dark forced on auth for premium feel
- Project switcher — Instantly switch project context, sidebar adapts. UX backbone of the platform.
- 4 directory entities with contacts — Full CRUD including nested contact management
- Scaling up — New developer onboarding Sprint 4, enabling 3 parallel streams
- Proven pipeline — 15 protos wired E2E. Adding new modules is now fast and repeatable.
11. Website Review (pinley.com)¶
Per Conor's request, we reviewed the current Squarespace site. Overall it's professional and well-structured. Here are observations and recommendations:
What's Working Well: - Clean, professional design appropriate for B2B mechanical contracting - Clear value proposition ("Precision Services for Every Project") - Good project categorization (Infrastructure, Office Interiors, Turnkey, etc.) - Responsive layout with mobile support - Schema.org LocalBusiness markup present
Potential Issues to Discuss¶
- Video embeds — SPX Cooling Tech video may have playback reliability issues (Conor mentioned "video issues"). Recommend verifying it plays on all browsers/devices and adding a fallback image.
- Contact form visibility — No prominent contact form/CTA above the fold on the homepage. For a contractor site, making it easy to request a quote is critical.
- SEO gaps — No visible meta descriptions, heading hierarchy could be tightened (jumps from H1 to H4-H5)
Quick Wins¶
| Area | Recommendation |
|---|---|
| Video | Test embedded video across browsers; add poster/fallback image if it fails to load |
| CTA | Add a "Request a Quote" or "Get in Touch" button above the fold |
| SEO | Add meta descriptions to all pages, improve heading hierarchy (H1 → H2 → H3) |
| Performance | Lazy-load project images and partner logos |
| Accessibility | Verify alt text on all project images, check color contrast ratios |
| Content | Expand project case studies with specific metrics/outcomes (some already have this, make it consistent) |
Recommendation: Keep Squarespace or Rebuild?
| Option | Pros | Cons |
|---|---|---|
| Keep Squarespace (recommended) | Already live, easy for Conor to edit, low cost, good enough for a contractor marketing site | Limited customization, video embed issues, SEO ceiling |
| Rebuild custom | Full control, better performance, unified with Pinley platform | Significant effort, not core to the compliance platform, delays MVP |
Our recommendation: Keep Squarespace. The current site serves its purpose — it's a marketing/portfolio site for the contracting business. The Pinley platform we're building is the internal operations tool, not a public website replacement. Spending time rebuilding pinley.com takes away from the compliance platform which is the real value.
What we can help with (low effort):
- Fix the video issues Conor mentioned (as a website contributor)
- Add meta descriptions and fix heading hierarchy for SEO
- Add a prominent "Request a Quote" CTA above the fold
- Optimize image loading
These are small Squarespace tweaks, not a rebuild. Estimate: 2-4 hours, can do outside sprint work.
Action Items: - [ ] Conor to clarify the specific video issues he mentioned - [ ] Dev team to review as contributor (Conor added us) and flag specific fixes - [ ] Confirm: website tweaks handled as side task, not part of sprint scope
Document prepared by the Pinley development team. For questions, contact the project lead.