feat(app): CRM app, real home dashboard and child lists #10

Merged
KofTwentyTwo merged 5 commits from feature/app-home into develop 2026-10-14 17:52:46 +00:00
KofTwentyTwo commented 2026-10-14 17:46:15 +00:00 (Migrated from github.com)

Summary

P2 part A (app, home and nav) of the qbit-crm 0.2.0 design:

  • One crm app.
    • The Main section has contacts, companies, deals, activities, Web Leads and Lists. The Settings section has the 15 settings tables.
    • Sub-tables and processes are never in the nav.
    • withAppEnabled(false) lets a host embed the tables in its own app instead.
  • Real-data home. It uses standard widgets only (no HTML, G5), each a full-width table of 3 columns or fewer whose rows link to records. Queries run with the session, so locks apply, and aggregate in the database.
    • Today: statistics
    • Pipeline by stage
    • Forecast
    • Needs attention (rotting deals)
    • Recent web leads
    • Goals (only when goals exist)
    • Leaderboard
  • Contact Timeline: a record widget on contacts.
  • Child lists on contact, company, deal, pipeline, sequence, list, assignment rule and activity.
  • Retired the 0.1.0 trend widgets (win rate, stage duration, cycle length, conversion, average deal size, activity count and feed, recent deals). Trend reports move to data analysis, per the design.

Codex implemented this; Claude reviewed it.

Test plan

  • ./mvnw verify: 343 tests, 0 failures; checkstyle and guardrails pass; JaCoCo 90.7%
  • App sections contain exactly the main and settings tables, with no processes; home numbers checked against seeded data; child-list joins resolve

🤖 Generated with Claude Code

## Summary P2 part A (app, home and nav) of the qbit-crm 0.2.0 design: - **One `crm` app.** - The Main section has contacts, companies, deals, activities, Web Leads and Lists. The Settings section has the 15 settings tables. - Sub-tables and processes are never in the nav. - `withAppEnabled(false)` lets a host embed the tables in its own app instead. - **Real-data home.** It uses standard widgets only (no HTML, G5), each a full-width table of 3 columns or fewer whose rows link to records. Queries run with the session, so locks apply, and aggregate in the database. - Today: statistics - Pipeline by stage - Forecast - Needs attention (rotting deals) - Recent web leads - Goals (only when goals exist) - Leaderboard - **Contact Timeline:** a record widget on contacts. - **Child lists** on contact, company, deal, pipeline, sequence, list, assignment rule and activity. - **Retired** the 0.1.0 trend widgets (win rate, stage duration, cycle length, conversion, average deal size, activity count and feed, recent deals). Trend reports move to data analysis, per the design. Codex implemented this; Claude reviewed it. ## Test plan - [x] `./mvnw verify`: 343 tests, 0 failures; checkstyle and guardrails pass; JaCoCo 90.7% - [x] App sections contain exactly the main and settings tables, with no processes; home numbers checked against seeded data; child-list joins resolve 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.