Data Models

The platform uses PostgreSQL with SQLAlchemy ORM. All models use UUID primary keys and timestamp tracking.

Entity Relationship Diagram

┌──────────┐       ┌──────────────┐       ┌───────────────────┐
│   User   │◀──────│ ProjectUser  │──────▶│     Project        │
│          │  1..N │              │ N..1  │                    │
│ • id     │       │ • role       │       │ • name             │
│ • name   │       │ • status     │       │ • domain           │
└──────────┘       └──────────────┘       │ • inviteCode       │
                                           │ • currentPhaseId   │
                                           └────────┬───────────┘
                                                    │ 1..N
                                           ┌────────▼───────────┐
                                           │ TemplateInstance    │
                                           │                    │
                                           │ • templateCode     │
                                           │ • instanceName     │
                                           │ • status           │
                                           │ • completionPct    │
                                           └────────┬───────────┘
                                                    │ 1..1
                         ┌───────────────────────────┼──────────────────┐
                         │                           │                  │
                ┌────────▼────────┐     ┌────────────▼──┐   ┌──────────▼──────┐
                │ StakeholderCard │     │  ProjectCard   │   │ EcosystemMatrix │
                │ (Phase 1)       │     │  (Phase 1)     │   │ (Phase 1)       │
                └─────────────────┘     └────────────────┘   └─────────────────┘

Core Models

User

Field

Type

Description

id

UUID

Primary key

name

String

Display name (from JWT)

createdAt

DateTime

First seen timestamp

Project

Field

Type

Description

id

UUID

Primary key

author

String

Creator user ID

name

String

Project name

slug

String

URL-friendly identifier

description

String

Optional description

currentPhaseId

String

Active phase (1-4)

status

String

draft / active / completed

objectives

String

Comma-separated goals

domain

String

climate, water, energy, etc.

organization

String

Lead organization

expertise

String

Required expertise

serviceIdea

String

The service being designed

inviteCode

String

8-char alphanumeric (permanent)

progress_summary

String

AI-generated progress overview

ProjectUser (Membership)

Field

Type

Description

projectId

FK → Project

Associated project

userId

FK → User

Associated user

role

Enum

ADMIN / MEMBER

status

Enum

PENDING / ACCEPTED / REJECTED

threads

List[String]

User’s chat thread IDs

TemplateInstance

Field

Type

Description

id

UUID

Primary key

projectId

FK → Project

Parent project

templateCode

String

Template type (e.g., “1.0.1”)

instanceName

String

User-given name

instanceNumber

Integer

Sequence number

status

String

not_started / in_progress / completed

completionPercentage

Integer

0–100

updatedBy

String

Last editor user ID

updatedByName

String

Last editor display name

Phase-Specific Models

Phase 1 — Stakeholder ID Card

Captures full stakeholder profile:

  • formalInfo: name, type, location, website, logo, user/pilot potential

  • comprehensiveInfo: activities, ongoing projects, DestinE uses, contacts

  • assessment: 8-dimension radar (0–5 scale per dimension + observations)

  • contactInfo: email, phone, address, contact person

Phase 1 — Ecosystem Matrix

Singleton per project. Maps stakeholder × project connections:

  • connections: list of {stakeholder_name, project_name, role, contribution}

  • validationMetadata: timestamp, version

Phase 2 — DIV (Data-Information-Value)

  • needsIdentification: User needs mapping

  • userJourneyMapping: Interaction flows

  • integrationMap: Integration points

Phase 3 — User Research Templates

  • UserProfile — Personas and needs

  • UserJourney — Interaction flows

  • UserNeedsExpansion — Pain point deep dives

  • IntegrationChallenges — Adoption obstacles

  • UserFeedbackForm — Structured feedback

  • FacilitatorCaptureSheet — Workshop notes

Phase 4 — Outcomes Templates

  • OutcomesDiagram — Actions, projects, time horizons, capacity building

  • SustainabilityCanvas — 6 dimensions: value proposition, user value, user relationship, technical solution, workflow, economic equation

Initial Diagnosis

Field

Type

Description

id

UUID

Primary key

responses

JSONB

12 question-answer pairs

mode

String

flash / project

projectId

FK

If project mode

llmSynthesis

String

AI-generated analysis

recommendations

String

AI suggestions