dealroom/ENHANCED_LOVABLE_SPEC.md

16 KiB

Dealspace AI - Complete Lovable Prototype Specification

Comprehensive analysis from Chrome DevTools extraction and Lovable development conversation

Executive Summary

Dealspace AI is a sophisticated M&A data room platform with AI-powered diligence assistance. Built on Supabase with React/TypeScript frontend, it provides role-based access for sellers and buyers with comprehensive deal management, document organization, and Atlas AI integration for intelligent diligence support.

Demo Data Overview

The platform contains rich demo data with:

  • 4 Deals: Project Aurora, Beacon, Catalyst, Delta
  • 12 Documents organized in 5 folders per deal
  • 23 Diligence Requests across 2 deals
  • 8 Contacts with buyer/seller/advisor types
  • Demo Organization: "Apex Capital Partners"
  • Demo Users:
    • Sarah Chen (Seller/Owner role)
    • James Park (Buyer/Viewer role)

Architecture

Frontend (React 18 + TypeScript)

src/
├── pages/           # Main application pages (11 pages)
│   ├── Analytics.tsx     # Deal performance metrics
│   ├── AuditLog.tsx     # Activity tracking
│   ├── Auth.tsx         # Authentication with demo modes
│   ├── Contacts.tsx     # Contact management
│   ├── Dashboard.tsx    # Main overview with deal cards
│   ├── DealRoom.tsx     # Individual deal room with tabs
│   ├── DealRooms.tsx    # Deal listing with timelines
│   ├── ICMemos.tsx      # Investment committee memos
│   ├── RequestList.tsx  # Diligence request management
│   ├── Settings.tsx     # User/org settings
│   └── PlatformGuide.tsx # Documentation
├── components/      # Core reusable components
│   ├── AppLayout.tsx        # Main app shell
│   ├── AppShell.tsx         # Navigation wrapper
│   ├── AtlasGlobalChat.tsx  # AI chat interface
│   ├── AtlasSidebar.tsx     # AI assistant sidebar
│   ├── DealRequestsPanel.tsx # Request management
│   └── NavLink.tsx          # Navigation components
├── hooks/           # Custom React hooks
│   ├── useAuth.ts           # Authentication state
│   ├── useOrganization.ts   # Org context
│   ├── useTheme.ts          # Dark/light mode
│   └── useUserRole.ts       # Role-based access
├── lib/             # Utilities
│   ├── api.ts              # API layer
│   └── utils.ts            # Helper functions
├── integrations/supabase/   # Backend integration
│   ├── client.ts           # Supabase client
│   └── types.ts            # TypeScript types
└── components/ui/   # Shadcn/UI components (50+ components)

Backend (Supabase)

supabase/
├── migrations/      # Database schema (5 migration files)
│   ├── 20260214204302_*.sql  # Initial schema
│   ├── 20260214210921_*.sql  # Demo data seeding
│   ├── 20260214212128_*.sql  # Request list enhancements
│   ├── 20260214222633_*.sql  # Buyer group segmentation
│   └── 20260214224626_*.sql  # Role-based access
└── functions/       # Edge functions (5 functions)
    ├── atlas-chat/          # AI document Q&A
    ├── compute-deal-score/  # Deal scoring algorithms
    ├── demo-login/          # Demo account creation
    ├── folder-summary/      # AI folder summaries
    └── generate-ic-memo/    # IC memo generation

Database Schema (Inferred from Development History)

Core Tables

  • organizations - Multi-tenant organization structure
  • profiles - User profiles linked to Supabase auth
  • deals - Deal rooms with metadata
  • folders - Document organization within deals
  • documents - File storage and metadata
  • diligence_requests - Request list items
  • contacts - Contact management
  • audit_logs - Activity tracking

Key Fields Added During Development

  • diligence_requests:

    • buyer_comment (text, nullable) - Buyer notes on requests
    • seller_comment (text, nullable) - Seller notes on requests
    • buyer_group (text, nullable) - Segmentation by buyer groups
    • atlas_status (enum) - fulfilled/partial/missing
    • atlas_note (text) - AI assessment summary
    • confidence_score (numeric) - AI confidence rating
  • deals:

    • ioi_date (date) - Indication of Interest date
    • loi_date (date) - Letter of Intent date
    • exclusivity_days (integer) - Days remaining in exclusivity
    • stage (enum) - Deal stage tracking

Row Level Security (RLS)

  • Owner Role (Sellers): Full access to organization data
  • Viewer Role (Buyers): Filtered access based on buyer_group assignments
  • Buyer Group Filtering: Automatic data scoping based on user assignments

Atlas AI System

Core AI Functions

  1. Atlas Chat (atlas-chat/index.ts)

    • Document-based Q&A using RAG
    • Concise, bullet-point responses
    • Document hyperlinking (e.g., [FileName.pdf](/folder))
    • Emoji-prefixed status indicators (/⚠️/🔴)
    • Integrated with markdown parser for rich rendering
  2. Deal Scoring (compute-deal-score/index.ts)

    • Automated deal risk assessment
    • Completion probability calculations
    • Timeline urgency scoring
  3. Folder Summarization (folder-summary/index.ts)

    • AI-generated folder summaries
    • Document completeness scoring (e.g., "85%" for Financial Statements)
    • Integration with deal room folder views
  4. IC Memo Generation (generate-ic-memo/index.ts)

    • Investment Committee memo creation
    • Data synthesis from deal room contents
    • Buyer-role specific functionality
  5. Demo Login (demo-login/index.ts)

    • Separate seller/buyer demo account creation
    • Automatic organization assignment
    • RLS policy compliance for demo data access

User Roles & Access Control

Seller (Owner) Role - "Sarah Chen"

Full Platform Access:

  • Dashboard with all deals and metrics
  • Deal Rooms management (create, upload, organize)
  • Request Lists with "View All" consolidated view
  • Analytics and performance metrics
  • Contacts management
  • Audit Log visibility
  • Settings and configuration
  • Platform Guide access
  • Excluded: IC Memos tab (buyer-only feature)

Capabilities:

  • Create new deal rooms
  • Upload CSV request lists with optional "Buyer Group" column
  • Edit seller comments on requests
  • Manage document folders and uploads
  • View all buyer group request lists

Buyer (Viewer) Role - "James Park"

Limited Platform Access:

  • Dashboard (filtered to assigned deals only)
  • Deal Rooms (access only to assigned deals)
  • Request Lists (filtered to buyer group only)
  • IC Memos generation tool
  • Platform Guide access
  • Excluded: Analytics, Contacts, Audit Log, Settings

Data Filtering:

  • Project Aurora via "Meridian Capital" buyer group
  • Project Beacon via "Summit Health Equity" buyer group
  • No create/upload actions available
  • Can only edit buyer comments on requests

Specific Deal Assignments:

  • Project Aurora: "Meridian Capital" / "Horizon Partners" buyer groups
  • Project Beacon: "Summit Health Equity" / "Northstar Health Capital" buyer groups
  • Project Catalyst: Additional buyer groups as configured
  • Project Delta: Additional buyer groups as configured

Key Features Deep Dive

1. Deal Room Management

Structure:

  • Deal rooms with tabbed interface (Documents / Request List)
  • 5 folders per deal with AI-generated summaries
  • Document upload and organization
  • Folder completeness scoring (e.g., "Financial Statements: 85%")

Timeline Tracking:

  • IOI Date (Indication of Interest)
  • LOI Date (Letter of Intent)
  • Exclusivity Period with color-coded urgency:
    • Green: >30 days remaining
    • Yellow: 10-30 days remaining
    • Red: <10 days remaining

Deal Stages:

  • Stage badges replacing risk percentages
  • Visual status indicators
  • Progress tracking

2. Request List System

Segmentation:

  • Buyer group tabs (e.g., "Meridian Capital", "Horizon Partners")
  • "View All" tab for seller consolidated view
  • 23 demo requests across Project Aurora and Beacon

Column Structure:

  1. Request item description
  2. Section grouping
  3. Buyer comment (inline-editable)
  4. Seller comment (inline-editable)
  5. Atlas Note (AI assessment summary)
  6. Atlas Status (fulfilled/partial/missing with confidence scores)

CSV Import/Export:

  • Supports "Buyer Group" column for automatic segmentation
  • Bulk request list management
  • Data interchange capabilities

Atlas Assessment:

  • 11 Fulfilled requests with status
  • 5 Partial requests with ⚠️ status
  • 7 Missing requests with 🔴 status
  • AI-generated notes for status rationale (blank when missing)

3. Authentication & Demo System

Demo Mode Implementation:

  • Bifurcated demo buttons on auth page
  • "Seller Demo" → Sarah Chen (owner role)
  • "Buyer Demo" → James Park (viewer role)
  • Real account creation with RLS compliance
  • Identical data access as normal login

Security:

  • Supabase authentication
  • Organization-scoped access
  • Role-based navigation filtering
  • Comment editing permissions by role

4. Atlas AI Integration

Response Characteristics:

  • Concise, bullet-point format
  • Document hyperlinks: [FileName.pdf](/folder)
  • Status indicators: (complete), ⚠️ (partial), 🔴 (missing)
  • Markdown rendering with link support
  • Context-aware responses based on deal room contents

UI Integration:

  • AtlasGlobalChat component for document Q&A
  • AtlasSidebar for persistent AI assistance
  • Inline status indicators in request lists
  • Confidence scoring for assessments

5. UI/UX Features

Theme System:

  • Light/dark mode toggle in sidebar footer (sun/moon icon)
  • Defaults to dark mode
  • Persists via localStorage
  • Flash-free loading with initial script
  • Clean white/gray palette for light mode
  • Consistent teal accent color

Navigation:

  • Role-based sidebar navigation
  • Platform Guide with TOC and expandable accordions
  • Role badges displayed in sidebar
  • Responsive design for mobile/desktop

Technology Stack

Frontend:

  • React 18 with TypeScript
  • Vite build system
  • Tailwind CSS for styling
  • Shadcn/UI component library (50+ components)
  • Lucide Icons
  • State management via React Context API

Backend:

  • Supabase (PostgreSQL + Auth + Edge Functions)
  • Row Level Security (RLS) policies
  • Real-time subscriptions
  • File storage integration

AI Integration:

  • OpenAI API via Supabase Edge Functions
  • RAG (Retrieval Augmented Generation) for document Q&A
  • Custom prompt engineering for concise responses
  • Document embedding and vector search

Detailed Development History

Based on the extracted conversation, the platform evolved through these key phases:

Phase 1: Initial Demo Data Population

  • Rich demo data creation with 4 deals
  • 12 documents across 5 folders per deal
  • 23 diligence requests with AI assessments
  • 8 contacts with type classifications
  • Platform Guide documentation

Phase 2: Atlas AI Refinement

  • Rewrote system prompts for concise responses
  • Added document hyperlinking capability
  • Implemented emoji status indicators
  • Enhanced markdown parser for link rendering

Phase 3: UI/UX Enhancements

  • Light/dark mode toggle implementation
  • Request list integration within deal rooms
  • Tabbed interface (Documents / Request List)
  • Responsive design improvements

Phase 4: Demo Authentication System

  • Demo mode implementation for testing
  • Real demo account creation via edge function
  • RLS compliance for demo data access
  • Bypass authentication for UI testing

Phase 5: Request List Enhancements

  • Buyer/seller comment columns (inline-editable)
  • Buyer group segmentation with tabs
  • CSV import with "Buyer Group" column support
  • Atlas Note column for AI assessments

Phase 6: Buyer Group Segmentation

  • Multiple request lists per deal by buyer group
  • Demo data for buyer group assignments
  • "View All" seller perspective
  • Filtered buyer access by group

Phase 7: Atlas Assessment Integration

  • Atlas Note column implementation
  • Brief AI summaries for request status
  • Blank notes for missing items
  • Status-based conditional display

Phase 8: Deal Timeline Features

  • Removed close percentage and risk metrics
  • IOI/LOI date tracking implementation
  • Exclusivity period countdown with color coding
  • Stage-based deal progression

Phase 9: Role-Based Access Control

  • Bifurcated demo login (Seller/Buyer)
  • Role-based sidebar navigation
  • Data filtering by buyer group assignments
  • Comment editing permissions by role
  • Role badge display in sidebar

Migration to Go - Implementation Guide

1. Database Migration

-- Example table structure based on features
CREATE TABLE organizations (
    id UUID PRIMARY KEY,
    name TEXT NOT NULL,
    created_at TIMESTAMPTZ DEFAULT NOW()
);

CREATE TABLE deals (
    id UUID PRIMARY KEY,
    organization_id UUID REFERENCES organizations(id),
    name TEXT NOT NULL,
    stage TEXT,
    ioi_date DATE,
    loi_date DATE,
    exclusivity_days INTEGER,
    created_at TIMESTAMPTZ DEFAULT NOW()
);

CREATE TABLE diligence_requests (
    id UUID PRIMARY KEY,
    deal_id UUID REFERENCES deals(id),
    description TEXT NOT NULL,
    section TEXT,
    buyer_group TEXT,
    buyer_comment TEXT,
    seller_comment TEXT,
    atlas_status TEXT CHECK (atlas_status IN ('fulfilled', 'partial', 'missing')),
    atlas_note TEXT,
    confidence_score DECIMAL(3,2),
    created_at TIMESTAMPTZ DEFAULT NOW()
);

2. Authentication System

  • JWT-based authentication with organization scoping
  • Role-based access control (owner/viewer)
  • Demo account generation endpoints
  • Session management with refresh tokens

3. AI Integration Architecture

// Example Go structure for Atlas AI
type AtlasService struct {
    openaiClient *openai.Client
    vectorStore  VectorStore
}

type DocumentQuery struct {
    Question string `json:"question"`
    DealID   string `json:"deal_id"`
    Context  []string `json:"context"`
}

type AtlasResponse struct {
    Answer     string  `json:"answer"`
    Confidence float64 `json:"confidence"`
    Sources    []DocumentReference `json:"sources"`
    Status     string  `json:"status"` // fulfilled, partial, missing
}

4. API Endpoints

POST /api/auth/demo-login
POST /api/atlas/chat
POST /api/atlas/folder-summary
POST /api/atlas/ic-memo
GET  /api/deals
GET  /api/deals/{id}/requests
POST /api/deals/{id}/requests/csv-import
PATCH /api/requests/{id}/comments

5. Role-Based Filtering

func FilterRequestsByBuyerGroup(requests []Request, userRole string, buyerGroup string) []Request {
    if userRole == "owner" {
        return requests // Sellers see all
    }
    
    var filtered []Request
    for _, req := range requests {
        if req.BuyerGroup == buyerGroup || req.BuyerGroup == "" {
            filtered = append(filtered, req)
        }
    }
    return filtered
}

Business Logic Patterns

Demo Data Seeding

  • 4 predefined deals with realistic names
  • Buyer group assignments per deal
  • AI-generated folder summaries
  • Request list segmentation by buyer groups

Atlas AI Prompt Engineering

  • System prompts optimized for concise responses
  • Document context injection for RAG
  • Status classification logic (fulfilled/partial/missing)
  • Confidence scoring algorithms

Audit Logging

  • Activity tracking across all user actions
  • Role-based log filtering
  • Timeline view of deal progression
  • User interaction monitoring

Critical Implementation Notes

  1. RLS Compliance: All data access must respect buyer group assignments
  2. AI Response Format: Maintain emoji status indicators and document linking
  3. Demo Mode: Ensure demo accounts have identical data access to real accounts
  4. CSV Import: Support buyer group column for request segmentation
  5. Timeline Urgency: Implement color-coded exclusivity period warnings
  6. Comment System: Separate buyer/seller comment fields with role-based editing
  7. Theme Persistence: Implement localStorage-based theme switching
  8. Responsive Design: Mobile-first approach with sidebar collapsing

This comprehensive specification captures the complete feature set, data model, and implementation patterns from the Dealspace AI Lovable prototype, providing a complete blueprint for Go migration.