Skip to content

Releases: SafetyMP/Professional-Service-Automation

v0.5.0 — Phase 2 Complete

Choose a tag to compare

@SafetyMP SafetyMP released this 08 Jul 04:48

Phase 2 complete

Demo-ready for professional services firms. See docs/phase-2-complete.md for the full walkthrough.

Highlights

  • QuickBooks OAuth — connect and push journal entries from invoices
  • Reporting polish — contract/milestone columns, expense-by-category on profitability and project detail
  • Xero OAuth (v0.4.0), milestone billing, expense UI v2, contract-aware profitability (v0.2–v0.4)
  • Updated README, screenshots, and MVP scope

Optional env vars

XERO_CLIENT_ID, XERO_CLIENT_SECRET, QUICKBOOKS_CLIENT_ID, QUICKBOOKS_CLIENT_SECRET, AUTH_URL

v0.4.1 — Accounting manager access

Choose a tag to compare

@SafetyMP SafetyMP released this 08 Jul 04:48

Fixed

  • Managers can access Settings → Accounting and edit chart of accounts
  • Sidebar hides Accounting for consultants; Xero connect remains admin-only

v0.4.0 — Xero OAuth & milestone polish

Choose a tag to compare

@SafetyMP SafetyMP released this 08 Jul 04:22

Xero OAuth & milestone polish

  • Xero OAuth connect/disconnect in Settings → Accounting
  • Push manual journals to Xero from invoice detail
  • Optional Xero account codes on chart of accounts
  • Milestone contract validation and reorder controls
  • Expense summary by category for managers

v0.3.0 — Expense UI v2

Choose a tag to compare

@SafetyMP SafetyMP released this 08 Jul 04:22

Expense UI v2

  • Expense categories per organization
  • Receipt uploads (JPG, PNG, WebP, PDF up to 5 MB)
  • Manager bulk approval
  • Category-aware invoice line descriptions

v0.2.0

Choose a tag to compare

@SafetyMP SafetyMP released this 08 Jul 03:15

Phase 2 billing and accounting

Added

  • Contract-aware profitability: fixed-fee and retainer projects use invoice totals and remaining contract balance for revenue instead of hours × rate
  • Milestone billing: Milestone model with PLANNED → READY → INVOICED workflow, project milestone UI, and milestone-based invoice generation
  • Accounting export v2: configurable chart of accounts (Settings → Accounting), Xero manual journal CSV, and QuickBooks Online journal CSV formats

Changed

  • Profitability rules spec updated for contract vs T&M vs milestone revenue recognition
  • Project detail shows "Contract revenue" label for fixed-fee, retainer, and milestone profitability breakdown
  • Journal CSV exports use organization account names from settings

Upgrade

  • Run npm run db:migrate after pulling
  • Re-apply RLS if you use tenant policies: psql "$DIRECT_URL" -f prisma/rls.sql
  • Reseed demo data: npm run db:seed

v0.1.5

Choose a tag to compare

@SafetyMP SafetyMP released this 08 Jul 02:07

Added

  • Multi-arch Docker images (linux/amd64, linux/arm64) on GHCR
  • Branch protection on main (requires verify, e2e, analyze checks)

Changed

  • Dependabot ignores Node Docker bumps ≥25 (stay on Node 22 LTS)

v0.1.4

Choose a tag to compare

@SafetyMP SafetyMP released this 08 Jul 01:56
6b7486c

Added

  • CodeQL security scanning
  • E2E Playwright smoke tests in CI
  • Release workflow publishing Docker images to GHCR
  • Expanded Dependabot (Docker base images, grouped Actions)

Changed

  • GitHub Actions bumped to latest minor versions (Dependabot)

v0.1.3

Choose a tag to compare

@SafetyMP SafetyMP released this 08 Jul 01:31

Added

  • Full UI design system: dark sidebar, teal accent, Inter typography, Lucide icons
  • Shared components: PageHeader, StatCard, Table, Badge, EmptyState, Alert
  • Mobile navigation drawer and fixed sidebar active-state logic

Changed

  • Redesigned login, dashboard, and all app pages
  • Regenerated README screenshots and demo GIF

v0.1.2

Choose a tag to compare

@SafetyMP SafetyMP released this 08 Jul 00:41

Added

  • Docker deployment: Dockerfile, docker-compose.stack.yml, and deploy guide
  • README hero demo GIF and one-command deploy quick start
  • Screenshots CI workflow (release, monthly schedule, manual dispatch)
  • GitHub Discussions with Q&A template
  • Repository description and homepage metadata

Try it

export AUTH_SECRET="$(openssl rand -base64 32)"
docker compose -f docker-compose.stack.yml up --build -d

v0.1.1

Choose a tag to compare

@SafetyMP SafetyMP released this 08 Jul 00:32

OSS polish release.

Added

  • Development guide (docs/development.md)
  • README screenshots (dashboard, invoices, profitability)
  • npm run screenshots capture script (uses system Chrome)