Skip to content

adityaaa08012006/decivue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

89 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

DECIVUE - Deterministic Decision Intelligence Platform

Stronger Decisions. Smarter Organizations.

DECIVUE is an intelligent decision-monitoring platform that helps teams make adaptive, data-driven decisions with clarity. Monitor decision health, track assumptions, detect conflicts, and adapt before problems escalate.

Core Philosophy: The system does not replace human judgment โ€” it highlights when judgment is needed.


๐ŸŽฏ What is DECIVUE?

Organizations make hundreds of strategic decisions, but those decisions can quietly degrade over time as assumptions become invalid, conflicts emerge, or dependencies change. DECIVUE treats decisions as living entities that need continuous monitoring and adaptive governance.

Key Problems We Solve

  1. Silent Decision Degradation: Assumptions change, but old decisions remain unquestioned
  2. Conflict Blindness: Decisions contradict each other without anyone noticing
  3. Manual Governance Overhead: Teams waste time tracking dependencies and approvals
  4. Reactive Crisis Management: Problems are discovered too late

โœจ Core Features

๐Ÿ” Decision Health Monitoring

  • Real-time health scoring based on assumption validity
  • Visual status indicators: Stable, At Risk, Critical, Expired
  • Historical health trends with evaluation tracking
  • Automated degradation alerts

โš”๏ธ Intelligent Conflict Detection

  • Assumption Conflicts: Detects contradictory assumptions across decisions
  • Decision Conflicts: Identifies resource competition, contradicting goals
  • Constraint Violations: Flags budget, policy, and business rule violations
  • Automatic conflict discovery on new decision/assumption creation

๐Ÿ“Š Structured Decision Framework

  • Parameter Templates: Pre-defined categories for consistent decision-making
  • Sub-category Dropdowns: Industry-specific templates (tech, retail, healthcare, etc.)
  • Assumption Parameters: Structured data capture (numeric ranges, budgets, timelines)
  • Universal vs. Custom Assumptions: Org-wide shared assumptions or decision-specific

๐Ÿ”„ Version Control & Audit

  • Complete decision history with change tracking
  • Version snapshots for every substantial change
  • Lifecycle transitions: Draft โ†’ Active โ†’ Review Required โ†’ Retired โ†’ Invalidated
  • Governance audit logs for approvals and rejections

๐Ÿ‘ฅ Adaptive Governance

  • Role-Based Workflows: Different capabilities for Members, Leads, Admins
  • Tiered Approval System: Operational, Strategic, Critical decision tiers
  • Edit Request Workflow: Request โ†’ Review โ†’ Approve/Reject with justification
  • Lock/Unlock Mechanism: Prevent changes during critical review periods

๐Ÿ“ˆ Advanced Decision Intelligence

  • Decision Flow Visualization: Interactive graph showing dependencies and relationships
  • Team Member Reports: Individual contribution tracking and decision ownership
  • Deprecation Outcomes: Track why decisions were retired (failed, succeeded, superseded)
  • Time Jump Simulation: Project decision states forward in time based on expiry dates

๐Ÿ”” Smart Notifications

  • Severity levels: Info, Warning, Critical
  • Notification types: Assumption conflicts, constraint violations, review deadlines, health degradation
  • User preferences: Email + in-app notifications
  • Batch notification processing every 15 minutes

๐Ÿ“ค Decision Import System

  • Bulk upload via CSV/PDF/DOCX
  • AI-powered parsing with Gemini API
  • Duplicate detection and conflict checking
  • Preview and validate before committing

๐Ÿ—๏ธ Architecture

Technology Stack

Frontend

  • React 18 with Vite
  • Tailwind CSS for styling
  • Framer Motion for animations
  • React Flow for decision visualization
  • Lucide React for icons

Backend

  • Node.js with TypeScript
  • Express.js REST API
  • Supabase PostgreSQL database
  • Google Gemini AI for document parsing
  • Winston for logging

Infrastructure

  • Vercel (Frontend hosting)
  • Railway (Backend hosting)
  • Supabase (Database, Auth, RLS)
  • Resend (Email notifications)

Project Structure

decivue/
โ”œโ”€โ”€ frontend/                      # React dashboard
โ”‚   โ”œโ”€โ”€ public/                    # Static assets (logo, videos)
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/            # React components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ LandingPage.jsx   # Homepage
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ DecisionHealthOverview.jsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ DecisionLogTable.jsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ DecisionFlowGraph/ # Visualization
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ AssumptionsPage.jsx
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ TeamPage.jsx      # Team management
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ReportsPage.jsx   # Analytics
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”‚   โ”œโ”€โ”€ contexts/              # React contexts (Auth, Theme)
โ”‚   โ”‚   โ”œโ”€โ”€ services/              # API client
โ”‚   โ”‚   โ””โ”€โ”€ utils/                 # Helper functions
โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ”œโ”€โ”€ tailwind.config.js
โ”‚   โ””โ”€โ”€ vite.config.js
โ”‚
โ”œโ”€โ”€ backend/                       # Node.js/TypeScript API
โ”‚   โ”œโ”€โ”€ migrations/                # Database migrations
โ”‚   โ”‚   โ”œโ”€โ”€ 006_add_authentication.sql
โ”‚   โ”‚   โ”œโ”€โ”€ 007_enable_rls_with_registration_support.sql
โ”‚   โ”‚   โ”œโ”€โ”€ 033_fix_version_history_timeline.sql
โ”‚   โ”‚   โ””โ”€โ”€ 034_fix_edit_approval_change_type.sql
โ”‚   โ”œโ”€โ”€ scripts/                   # Utility scripts
โ”‚   โ”‚   โ”œโ”€โ”€ seed-plot-armor-complete.ts  # Demo data seeder
โ”‚   โ”‚   โ”œโ”€โ”€ clear-all-data.ts            # Database reset
โ”‚   โ”‚   โ”œโ”€โ”€ apply-migration-034.ts       # Migration tool
โ”‚   โ”‚   โ””โ”€โ”€ reload-schema.ts             # Schema refresh
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ api/                   # REST API routes & controllers
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ routes/            # Express routes
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth.ts
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ decisions.ts
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ assumptions.ts
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ assumption-conflicts.ts
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ decision-conflicts.ts
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ constraint-violations.ts
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ notifications.ts
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ reports.ts
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ time-simulation.ts
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ import-decisions.ts
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ controllers/       # Business logic
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ decision-controller.ts
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ conflict-detector.ts
โ”‚   โ”‚   โ”œโ”€โ”€ services/              # External integrations
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ gemini-service.ts  # AI parsing
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ email-service.ts   # Resend integration
โ”‚   โ”‚   โ””โ”€โ”€ server.ts              # Express app entry
โ”‚   โ”œโ”€โ”€ schema.sql                 # Full database schema
โ”‚   โ”œโ”€โ”€ .env                       # Environment configuration
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ””โ”€โ”€ tsconfig.json
โ”‚
โ”œโ”€โ”€ docs/                          # Feature documentation
โ”‚   โ”œโ”€โ”€ DECISION_CONFLICTS_FEATURE.md
โ”‚   โ”œโ”€โ”€ QUICK_START_ADVANCED_FEATURES.md
โ”‚   โ”œโ”€โ”€ STRUCTURED_DECISIONS_GUIDE.md
โ”‚   โ””โ”€โ”€ TEAM_REPORTS_FEATURE.md
โ”‚
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ nixpacks.toml                  # Railway build config
โ”œโ”€โ”€ railway.json                   # Railway deployment config
โ”œโ”€โ”€ package.json                   # Monorepo root
โ””โ”€โ”€ README.md                      # This file

๐Ÿš€ Getting Started

Prerequisites

  • Node.js v18 or higher
  • npm or yarn
  • Supabase account (free tier works)
  • Gemini API key (for document import feature)
  • Resend API key (for email notifications)

Local Development Setup

1. Clone the Repository

git clone https://github.com/your-org/decivue.git
cd decivue

2. Install Dependencies

# Install root dependencies
npm install

# Install backend dependencies
cd backend
npm install

# Install frontend dependencies
cd ../frontend
npm install

3. Configure Environment Variables

Backend (backend/.env):

# Server
NODE_ENV=development
PORT=3001
LOG_LEVEL=info

# Supabase
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key

# Gemini AI (for document import)
GEMINI_API_KEY=your-gemini-api-key
GEMINI_API_KEY_FALLBACK=your-fallback-key

# Email Notifications
RESEND_API_KEY=your-resend-api-key
EMAIL_FROM=[email protected]
FRONTEND_URL=http://localhost:3000

# Notifications
EMAIL_NOTIFICATIONS_ENABLED=true
NOTIFICATION_CHECK_CRON=*/15 * * * *

Frontend (frontend/.env):

VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key
VITE_API_URL=http://localhost:3001/api

4. Set Up Database

  1. Create a Supabase project at supabase.com
  2. Run the schema:
    # In Supabase SQL Editor, execute:
    cd backend
    # Copy contents of schema.sql and execute in Supabase
  3. Run migrations:
    # In Supabase SQL Editor, execute in order:
    # 006_add_authentication.sql
    # 007_enable_rls_with_registration_support.sql
    # 033_fix_version_history_timeline.sql
    # 034_fix_edit_approval_change_type.sql

Or apply migration 034 via script:

cd backend
npx ts-node scripts/apply-migration-034.ts

5. Seed Demo Data (Optional)

cd backend
npm run seed-plot-armor

This creates the "Plot Armor" coffee shop demo organization with:

  • 20 business decisions spanning 220 days
  • 16 assumptions with structured parameters
  • 5 assumption conflicts
  • 4 decision conflicts
  • 10 decisions with expiry dates
  • Complete governance workflow examples

6. Start Development Servers

Terminal 1 - Backend:

cd backend
npm run dev
# Server runs on http://localhost:3001

Terminal 2 - Frontend:

cd frontend
npm run dev
# App runs on http://localhost:3000

๐Ÿ“ฆ Production Deployment

Frontend (Vercel)

  1. Connect Repository: Link your GitHub repo to Vercel
  2. Configure Project:
    • Framework: Vite
    • Root Directory: frontend
    • Build Command: npm run build
    • Output Directory: dist
  3. Environment Variables:
    VITE_SUPABASE_URL=https://your-project.supabase.co
    VITE_SUPABASE_ANON_KEY=your-anon-key
    VITE_API_URL=https://your-backend.railway.app/api
    
  4. Deploy: Vercel auto-deploys on git push

Backend (Railway)

  1. Create New Project: Deploy from GitHub repo
  2. Configure Service:
    • Root Directory: backend
    • Build Command: (auto-detected from nixpacks.toml)
    • Start Command: npm run start
  3. Environment Variables: Add all backend env vars from .env
  4. Generate Domain: Settings โ†’ Networking โ†’ Generate Domain
  5. Update Frontend: Set VITE_API_URL in Vercel to Railway URL

Post-Deployment

  1. โœ… Run migration 034 from local machine (connects to Supabase)
  2. โœ… Test API health: https://your-backend.railway.app/health
  3. โœ… Test frontend: https://your-app.vercel.app
  4. โœ… Verify login and decision creation
  5. โœ… Check governance approval workflow

๐ŸŽฎ Usage Guide

For Team Members

  1. View Decisions: See all organization decisions in Decision Log
  2. Check Health: Monitor decision health indicators
  3. Submit Edits: Request changes via Edit Request workflow
  4. Review Conflicts: Check Assumption Conflicts and Decision Conflicts pages
  5. Receive Notifications: Get alerts for critical issues

For Team Leads

Everything Members can do, plus:

  • Approve/Reject Edit Requests: Governance oversight
  • Create Strategic Decisions: Higher-tier decision authority
  • Lock/Unlock Decisions: Prevent changes during review
  • Generate Team Reports: View individual contributions

For Administrators

Full system access:

  • Manage Organizations: Create and configure org settings
  • Oversight All Decisions: Cross-team visibility
  • System Configuration: Manage templates and parameter categories
  • User Management: Add/remove team members

๐Ÿ“š Key Concepts

Decision Lifecycle

DRAFT โ†’ ACTIVE โ†’ REVIEW_REQUIRED โ†’ RETIRED/INVALIDATED
  • DRAFT: Initial creation, not yet implemented
  • ACTIVE: Live decision in effect
  • REVIEW_REQUIRED: Health degraded, needs reassessment
  • RETIRED: Gracefully ended (succeeded, replaced, or failed)
  • INVALIDATED: Forcibly ended due to invalid assumptions

Health Scoring

Decisions are scored 0-100 based on:

  • Assumption validity (invalid assumptions reduce score)
  • Unresolved conflicts (each conflict deducts points)
  • Constraint violations (policy/budget breaches)
  • Review staleness (time since last review)

Governance Tiers

  1. OPERATIONAL: Day-to-day decisions, auto-approved
  2. STRATEGIC: Mid-level impact, requires lead approval
  3. CRITICAL: High-stakes decisions, admin approval + lock mechanism

Assumption Scopes

  • UNIVERSAL: Org-wide shared assumptions (e.g., "Market growth rate = 12%")
  • CUSTOM: Decision-specific assumptions (e.g., "This store's traffic = 500/day")

๐Ÿงช Testing & Demo Data

Plot Armor Coffee Shop Scenario

The seeder creates a realistic coffee shop chain with:

Business Context:

  • Regional coffee shop chain expanding in competitive market
  • Making decisions about locations, operations, sustainability
  • All non-technical business decisions

Demo Features:

  • โœ… Decision conflicts (competing for same budget/resources)
  • โœ… Assumption conflicts (contradictory market assumptions)
  • โœ… Time jump simulation (10 decisions with expiry dates)
  • โœ… Version control (30+ historical versions)
  • โœ… Governance workflow (edit requests and approvals)
  • โœ… Deprecation tracking (succeeded, failed, superseded outcomes)
  • โœ… Evaluation trends (health signal changes over time)

๐Ÿ”‘ API Endpoints

Authentication

  • POST /api/auth/register - Create account
  • POST /api/auth/login - Login
  • GET /api/auth/me - Get current user

Decisions

  • GET /api/decisions - List all decisions
  • POST /api/decisions - Create decision
  • GET /api/decisions/:id - Get decision details
  • PUT /api/decisions/:id - Update decision
  • DELETE /api/decisions/:id - Delete decision
  • POST /api/decisions/:id/retire - Retire decision

Governance

  • POST /api/decisions/governance/request-edit - Request edit approval
  • POST /api/decisions/governance/approve-edit/:id - Approve/reject edit

Assumptions

  • GET /api/assumptions - List assumptions
  • POST /api/assumptions - Create assumption (auto-detects conflicts)
  • PUT /api/assumptions/:id - Update assumption
  • DELETE /api/assumptions/:id - Delete assumption

Conflicts

  • GET /api/assumption-conflicts - List assumption conflicts
  • GET /api/assumption-conflicts/detect - Manual conflict detection
  • POST /api/assumption-conflicts/:id/resolve - Resolve conflict
  • GET /api/decision-conflicts - List decision conflicts
  • POST /api/decision-conflicts/:id/resolve - Resolve conflict

Reports

  • GET /api/reports/team-member/:userId - Individual contribution report

Time Simulation

  • POST /api/time-simulation/jump - Project decisions forward in time

Import

  • POST /api/import/preview - Preview CSV/PDF/DOCX import
  • POST /api/import/commit - Commit imported decisions

๐Ÿ› ๏ธ Scripts Reference

Backend Scripts

# Seed demo data
npm run seed-plot-armor

# Clear all data from organization
npx tsx scripts/clear-all-data.ts

# Apply latest migration
npx tsx scripts/apply-migration-034.ts

# Reload database schema
npx tsx scripts/reload-schema.ts

Frontend Scripts

# Development server
npm run dev

# Production build
npm run build

# Preview production build
npm run preview

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License.


๐Ÿ™ Acknowledgments

  • Supabase for database and authentication infrastructure
  • Google Gemini for AI-powered document parsing
  • Resend for reliable email delivery
  • Vercel for frontend hosting
  • Railway for backend hosting

๐Ÿ“ง Support

For questions, issues, or feature requests:

  • Open an issue on GitHub
  • Documentation: docs/

Built with โค๏ธ by the PLOT ARMOR Team

Making decisions visible, trackable, and adaptive.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors