Latest commit

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Escape Ramp

A modern SaaS platform helping small businesses migrate from QuickBooks Desktop to cloud-based solutions.

πŸš€ Tech Stack

Next.jsTypeScriptTailwind CSSSupabaseAnthropic

πŸ“‹ Quick Links

β€’ Live Demo β€’ Frontend Repo β€’ Backend Repo


🎯 Overview

Escape Ramp is a comprehensive SaaS platform that helps small businesses migrate from QuickBooks Desktop to cloud-based solutions. Built with modern web technologies, it provides an intuitive interface for AI-powered migration assistance, document processing, and real-time progress tracking.

✨ Key Features

  • πŸ€– AI-Powered Intake Assistant - Conversational onboarding flow
  • πŸ“ Document Upload & Processing - Drag-and-drop file handling
  • πŸ“Š Historical Data Tracker - Complete audit trail and analytics
  • 🎧 Support Portal - Integrated help desk and live chat
  • πŸ“ˆ Real-time Dashboard - Migration progress and analytics
  • πŸ”’ Secure Authentication - Supabase Auth integration

πŸ—οΈ Architecture

This repository contains the original monorepo structure. For production use, we recommend using our split repositories:

πŸ› οΈ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • Anthropic API key

Installation

# Clone the repository
git clone https://github.com/BTheCoderr/escape-ramp.git
cd escape-ramp
# Install dependencies
npm install
# Set up environment variables
cp env.example .env.local
# Edit .env.local with your configuration# Start development server
npm run dev

Open http://localhost:3000 to view the application.

πŸ”§ Environment Variables

Create a .env.local file with the following variables:

# Supabase ConfigurationNEXT_PUBLIC_SUPABASE_URL=your_supabase_urlNEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keySUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key# AI ServicesANTHROPIC_API_KEY=your_anthropic_api_keyOPENAI_API_KEY=your_openai_api_key# QuickBooks IntegrationQUICKBOOKS_CLIENT_ID=your_quickbooks_client_idQUICKBOOKS_CLIENT_SECRET=your_quickbooks_client_secretQUICKBOOKS_REDIRECT_URI=your_redirect_uri# Email ServiceRESEND_API_KEY=your_resend_api_key# Payment ProcessingSTRIPE_SECRET_KEY=your_stripe_secret_keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key

πŸ“ Project Structure

escape-ramp/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ app/ # Next.js App Router
β”‚ β”‚ β”œβ”€β”€ api/ # API routes
β”‚ β”‚ β”‚ β”œβ”€β”€ intake/ # Intake form API
β”‚ β”‚ β”‚ β”œβ”€β”€ upload/ # File upload API
β”‚ β”‚ β”‚ β”œβ”€β”€ progress/ # Progress tracking API
β”‚ β”‚ β”‚ β”œβ”€β”€ transactions/ # Transaction CRUD
β”‚ β”‚ β”‚ β”œβ”€β”€ audit/ # Audit trail
β”‚ β”‚ β”‚ └── support/ # Support portal APIs
β”‚ β”‚ β”œβ”€β”€ layout.tsx # Root layout
β”‚ β”‚ └── page.tsx # Main page
β”‚ β”œβ”€β”€ components/ # React components
β”‚ β”‚ β”œβ”€β”€ Dashboard.tsx # Main dashboard
β”‚ β”‚ β”œβ”€β”€ AIAssistant.tsx # AI-powered intake
β”‚ β”‚ β”œβ”€β”€ DocumentUpload.tsx # File upload
β”‚ β”‚ β”œβ”€β”€ HistoricalDataTracker.tsx # Data tracking
β”‚ β”‚ β”œβ”€β”€ SupportPortal.tsx # Support system
β”‚ β”‚ └── Navigation.tsx # Sidebar navigation
β”‚ └── lib/ # Utility libraries
β”‚ β”œβ”€β”€ types.ts # TypeScript types
β”‚ β”œβ”€β”€ store.ts # Zustand store
β”‚ β”œβ”€β”€ supabase.ts # Supabase client
β”‚ β”œβ”€β”€ ai-service.ts # AI service integration
β”‚ β”œβ”€β”€ quickbooks-parser.ts # QB data parsing
β”‚ └── utils.ts # Utility functions
β”œβ”€β”€ python-service/ # Python microservices
β”‚ β”œβ”€β”€ invoice_parser.py # Invoice parsing service
β”‚ β”œβ”€β”€ requirements.txt # Python dependencies
β”‚ └── README.md # Python service docs
β”œβ”€β”€ demo-data/ # Sample QuickBooks data
β”œβ”€β”€ *.sql # Database schemas
└── README.md

πŸ§ͺ Development

Available Scripts

npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript check

Python Service Development

cd python-service
pip install -r requirements.txt
uvicorn invoice_parser:app --reload --port 8000

πŸ“š API Endpoints

Intake Processing

  • POST /api/intake - Process intake forms
  • GET /api/intake - Retrieve intake data

File Upload

  • POST /api/upload - Upload and process files
  • GET /api/upload - Retrieve file metadata

Migration Progress

  • GET /api/progress - Get migration status
  • PUT /api/progress - Update progress

Transactions

  • GET /api/transactions - List transactions
  • POST /api/transactions - Create transaction
  • PUT /api/transactions/:id - Update transaction
  • DELETE /api/transactions/:id - Delete transaction

Support Portal

  • GET /api/support/tickets - List support tickets
  • POST /api/support/tickets - Create ticket
  • PUT /api/support/tickets/:id - Update ticket
  • GET /api/support/messages - Get messages
  • POST /api/support/messages - Send message

Python Service

  • POST /parse-invoice - Parse invoice with AI
  • POST /parse-document - Parse any document
  • GET /health - Health check

πŸ—„οΈ Database Schema

Core Tables

  • intake_form - User intake data
  • migration_status - Migration progress
  • documents - File metadata
  • parsed_invoices - Extracted invoice data

Historical Data

  • transactions - Financial transactions
  • transaction_changes - Change tracking
  • audit_events - System audit trail
  • data_snapshots - Data versioning

Support System

  • support_tickets - Help tickets
  • support_messages - Ticket messages
  • support_attachments - File attachments
  • support_knowledge_base - Help articles

πŸ€– AI Integration

Anthropic Claude

  • Intake form analysis
  • Migration planning
  • Customer support

OpenAI GPT-4

  • Invoice parsing
  • Document processing
  • Data validation

QuickBooks Parser

  • CSV/IIF file parsing
  • Data validation
  • Migration mapping

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Configure environment variables
  3. Deploy automatically on push to main

Netlify

  1. Import your GitHub repository
  2. Set build command: npm run build
  3. Set publish directory: .next

Python Service (Railway/Render)

cd python-service
railway login
railway init
railway up

πŸ”’ Security

Authentication

  • Supabase Auth integration
  • JWT token validation
  • Role-based access control

Data Protection

  • Row Level Security (RLS)
  • Encrypted data storage
  • Secure file uploads

API Security

  • Rate limiting
  • Input validation
  • CORS configuration

πŸ› Troubleshooting

Common Issues

  1. Build Errors

    # Clear cache and reinstall
    rm -rf node_modules .next
    npm install
    npm run build
  2. Environment Variables

    • Ensure all required variables are set
    • Check for typos in variable names
    • Restart development server after changes
  3. Supabase Connection

    • Verify URL and keys are correct
    • Check network connectivity
    • Review Supabase dashboard for errors

πŸ“„ License

This project is proprietary software. All rights reserved.

🀝 Contributing

See CONTRIBUTING.md for contribution guidelines.

πŸ‘₯ Team

  • Baheem - Project Lead & Full Stack
  • Dante - Frontend UI/UX
  • Thomas - Backend API/Database
  • Pio - DevOps & Infrastructure
  • Sean - AI/ML Integration
  • Adrian - Testing & Quality Assurance

Built with ❀️ by the Escape Ramp Team

About

πŸš€ Escape Ramp: Complete QuickBooks Migration Solution - Modern SaaS tool helping businesses migrate from QuickBooks Desktop to cloud alternatives with AI-powered guidance, transparent pricing, and advanced analytics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Escape Ramp

A modern SaaS platform helping small businesses migrate from QuickBooks Desktop to cloud-based solutions.

πŸš€ Tech Stack

Next.jsTypeScriptTailwind CSSSupabaseAnthropic

πŸ“‹ Quick Links

β€’ Live Demo β€’ Frontend Repo β€’ Backend Repo


🎯 Overview

Escape Ramp is a comprehensive SaaS platform that helps small businesses migrate from QuickBooks Desktop to cloud-based solutions. Built with modern web technologies, it provides an intuitive interface for AI-powered migration assistance, document processing, and real-time progress tracking.

✨ Key Features

  • πŸ€– AI-Powered Intake Assistant - Conversational onboarding flow
  • πŸ“ Document Upload & Processing - Drag-and-drop file handling
  • πŸ“Š Historical Data Tracker - Complete audit trail and analytics
  • 🎧 Support Portal - Integrated help desk and live chat
  • πŸ“ˆ Real-time Dashboard - Migration progress and analytics
  • πŸ”’ Secure Authentication - Supabase Auth integration

πŸ—οΈ Architecture

This repository contains the original monorepo structure. For production use, we recommend using our split repositories:

πŸ› οΈ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • Anthropic API key

Installation

# Clone the repository
git clone https://github.com/BTheCoderr/escape-ramp.git
cd escape-ramp
# Install dependencies
npm install
# Set up environment variables
cp env.example .env.local
# Edit .env.local with your configuration# Start development server
npm run dev

Open http://localhost:3000 to view the application.

πŸ”§ Environment Variables

Create a .env.local file with the following variables:

# Supabase ConfigurationNEXT_PUBLIC_SUPABASE_URL=your_supabase_urlNEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keySUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key# AI ServicesANTHROPIC_API_KEY=your_anthropic_api_keyOPENAI_API_KEY=your_openai_api_key# QuickBooks IntegrationQUICKBOOKS_CLIENT_ID=your_quickbooks_client_idQUICKBOOKS_CLIENT_SECRET=your_quickbooks_client_secretQUICKBOOKS_REDIRECT_URI=your_redirect_uri# Email ServiceRESEND_API_KEY=your_resend_api_key# Payment ProcessingSTRIPE_SECRET_KEY=your_stripe_secret_keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key

πŸ“ Project Structure

escape-ramp/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ app/ # Next.js App Router
β”‚ β”‚ β”œβ”€β”€ api/ # API routes
β”‚ β”‚ β”‚ β”œβ”€β”€ intake/ # Intake form API
β”‚ β”‚ β”‚ β”œβ”€β”€ upload/ # File upload API
β”‚ β”‚ β”‚ β”œβ”€β”€ progress/ # Progress tracking API
β”‚ β”‚ β”‚ β”œβ”€β”€ transactions/ # Transaction CRUD
β”‚ β”‚ β”‚ β”œβ”€β”€ audit/ # Audit trail
β”‚ β”‚ β”‚ └── support/ # Support portal APIs
β”‚ β”‚ β”œβ”€β”€ layout.tsx # Root layout
β”‚ β”‚ └── page.tsx # Main page
β”‚ β”œβ”€β”€ components/ # React components
β”‚ β”‚ β”œβ”€β”€ Dashboard.tsx # Main dashboard
β”‚ β”‚ β”œβ”€β”€ AIAssistant.tsx # AI-powered intake
β”‚ β”‚ β”œβ”€β”€ DocumentUpload.tsx # File upload
β”‚ β”‚ β”œβ”€β”€ HistoricalDataTracker.tsx # Data tracking
β”‚ β”‚ β”œβ”€β”€ SupportPortal.tsx # Support system
β”‚ β”‚ └── Navigation.tsx # Sidebar navigation
β”‚ └── lib/ # Utility libraries
β”‚ β”œβ”€β”€ types.ts # TypeScript types
β”‚ β”œβ”€β”€ store.ts # Zustand store
β”‚ β”œβ”€β”€ supabase.ts # Supabase client
β”‚ β”œβ”€β”€ ai-service.ts # AI service integration
β”‚ β”œβ”€β”€ quickbooks-parser.ts # QB data parsing
β”‚ └── utils.ts # Utility functions
β”œβ”€β”€ python-service/ # Python microservices
β”‚ β”œβ”€β”€ invoice_parser.py # Invoice parsing service
β”‚ β”œβ”€β”€ requirements.txt # Python dependencies
β”‚ └── README.md # Python service docs
β”œβ”€β”€ demo-data/ # Sample QuickBooks data
β”œβ”€β”€ *.sql # Database schemas
└── README.md

πŸ§ͺ Development

Available Scripts

npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript check

Python Service Development

cd python-service
pip install -r requirements.txt
uvicorn invoice_parser:app --reload --port 8000

πŸ“š API Endpoints

Intake Processing

  • POST /api/intake - Process intake forms
  • GET /api/intake - Retrieve intake data

File Upload

  • POST /api/upload - Upload and process files
  • GET /api/upload - Retrieve file metadata

Migration Progress

  • GET /api/progress - Get migration status
  • PUT /api/progress - Update progress

Transactions

  • GET /api/transactions - List transactions
  • POST /api/transactions - Create transaction
  • PUT /api/transactions/:id - Update transaction
  • DELETE /api/transactions/:id - Delete transaction

Support Portal

  • GET /api/support/tickets - List support tickets
  • POST /api/support/tickets - Create ticket
  • PUT /api/support/tickets/:id - Update ticket
  • GET /api/support/messages - Get messages
  • POST /api/support/messages - Send message

Python Service

  • POST /parse-invoice - Parse invoice with AI
  • POST /parse-document - Parse any document
  • GET /health - Health check

πŸ—„οΈ Database Schema

Core Tables

  • intake_form - User intake data
  • migration_status - Migration progress
  • documents - File metadata
  • parsed_invoices - Extracted invoice data

Historical Data

  • transactions - Financial transactions
  • transaction_changes - Change tracking
  • audit_events - System audit trail
  • data_snapshots - Data versioning

Support System

  • support_tickets - Help tickets
  • support_messages - Ticket messages
  • support_attachments - File attachments
  • support_knowledge_base - Help articles

πŸ€– AI Integration

Anthropic Claude

  • Intake form analysis
  • Migration planning
  • Customer support

OpenAI GPT-4

  • Invoice parsing
  • Document processing
  • Data validation

QuickBooks Parser

  • CSV/IIF file parsing
  • Data validation
  • Migration mapping

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Configure environment variables
  3. Deploy automatically on push to main

Netlify

  1. Import your GitHub repository
  2. Set build command: npm run build
  3. Set publish directory: .next

Python Service (Railway/Render)

cd python-service
railway login
railway init
railway up

πŸ”’ Security

Authentication

  • Supabase Auth integration
  • JWT token validation
  • Role-based access control

Data Protection

  • Row Level Security (RLS)
  • Encrypted data storage
  • Secure file uploads

API Security

  • Rate limiting
  • Input validation
  • CORS configuration

πŸ› Troubleshooting

Common Issues

  1. Build Errors

    # Clear cache and reinstall
    rm -rf node_modules .next
    npm install
    npm run build
  2. Environment Variables

    • Ensure all required variables are set
    • Check for typos in variable names
    • Restart development server after changes
  3. Supabase Connection

    • Verify URL and keys are correct
    • Check network connectivity
    • Review Supabase dashboard for errors

πŸ“„ License

This project is proprietary software. All rights reserved.

🀝 Contributing

See CONTRIBUTING.md for contribution guidelines.

πŸ‘₯ Team

  • Baheem - Project Lead & Full Stack
  • Dante - Frontend UI/UX
  • Thomas - Backend API/Database
  • Pio - DevOps & Infrastructure
  • Sean - AI/ML Integration
  • Adrian - Testing & Quality Assurance

Built with ❀️ by the Escape Ramp Team

About

πŸš€ Escape Ramp: Complete QuickBooks Migration Solution - Modern SaaS tool helping businesses migrate from QuickBooks Desktop to cloud alternatives with AI-powered guidance, transparent pricing, and advanced analytics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Escape Ramp

A modern SaaS platform helping small businesses migrate from QuickBooks Desktop to cloud-based solutions.

πŸš€ Tech Stack

Next.jsTypeScriptTailwind CSSSupabaseAnthropic

πŸ“‹ Quick Links

β€’ Live Demo β€’ Frontend Repo β€’ Backend Repo


🎯 Overview

Escape Ramp is a comprehensive SaaS platform that helps small businesses migrate from QuickBooks Desktop to cloud-based solutions. Built with modern web technologies, it provides an intuitive interface for AI-powered migration assistance, document processing, and real-time progress tracking.

✨ Key Features

  • πŸ€– AI-Powered Intake Assistant - Conversational onboarding flow
  • πŸ“ Document Upload & Processing - Drag-and-drop file handling
  • πŸ“Š Historical Data Tracker - Complete audit trail and analytics
  • 🎧 Support Portal - Integrated help desk and live chat
  • πŸ“ˆ Real-time Dashboard - Migration progress and analytics
  • πŸ”’ Secure Authentication - Supabase Auth integration

πŸ—οΈ Architecture

This repository contains the original monorepo structure. For production use, we recommend using our split repositories:

πŸ› οΈ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • Anthropic API key

Installation

# Clone the repository
git clone https://github.com/BTheCoderr/escape-ramp.git
cd escape-ramp
# Install dependencies
npm install
# Set up environment variables
cp env.example .env.local
# Edit .env.local with your configuration# Start development server
npm run dev

Open http://localhost:3000 to view the application.

πŸ”§ Environment Variables

Create a .env.local file with the following variables:

# Supabase ConfigurationNEXT_PUBLIC_SUPABASE_URL=your_supabase_urlNEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keySUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key# AI ServicesANTHROPIC_API_KEY=your_anthropic_api_keyOPENAI_API_KEY=your_openai_api_key# QuickBooks IntegrationQUICKBOOKS_CLIENT_ID=your_quickbooks_client_idQUICKBOOKS_CLIENT_SECRET=your_quickbooks_client_secretQUICKBOOKS_REDIRECT_URI=your_redirect_uri# Email ServiceRESEND_API_KEY=your_resend_api_key# Payment ProcessingSTRIPE_SECRET_KEY=your_stripe_secret_keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key

πŸ“ Project Structure

escape-ramp/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ app/ # Next.js App Router
β”‚ β”‚ β”œβ”€β”€ api/ # API routes
β”‚ β”‚ β”‚ β”œβ”€β”€ intake/ # Intake form API
β”‚ β”‚ β”‚ β”œβ”€β”€ upload/ # File upload API
β”‚ β”‚ β”‚ β”œβ”€β”€ progress/ # Progress tracking API
β”‚ β”‚ β”‚ β”œβ”€β”€ transactions/ # Transaction CRUD
β”‚ β”‚ β”‚ β”œβ”€β”€ audit/ # Audit trail
β”‚ β”‚ β”‚ └── support/ # Support portal APIs
β”‚ β”‚ β”œβ”€β”€ layout.tsx # Root layout
β”‚ β”‚ └── page.tsx # Main page
β”‚ β”œβ”€β”€ components/ # React components
β”‚ β”‚ β”œβ”€β”€ Dashboard.tsx # Main dashboard
β”‚ β”‚ β”œβ”€β”€ AIAssistant.tsx # AI-powered intake
β”‚ β”‚ β”œβ”€β”€ DocumentUpload.tsx # File upload
β”‚ β”‚ β”œβ”€β”€ HistoricalDataTracker.tsx # Data tracking
β”‚ β”‚ β”œβ”€β”€ SupportPortal.tsx # Support system
β”‚ β”‚ └── Navigation.tsx # Sidebar navigation
β”‚ └── lib/ # Utility libraries
β”‚ β”œβ”€β”€ types.ts # TypeScript types
β”‚ β”œβ”€β”€ store.ts # Zustand store
β”‚ β”œβ”€β”€ supabase.ts # Supabase client
β”‚ β”œβ”€β”€ ai-service.ts # AI service integration
β”‚ β”œβ”€β”€ quickbooks-parser.ts # QB data parsing
β”‚ └── utils.ts # Utility functions
β”œβ”€β”€ python-service/ # Python microservices
β”‚ β”œβ”€β”€ invoice_parser.py # Invoice parsing service
β”‚ β”œβ”€β”€ requirements.txt # Python dependencies
β”‚ └── README.md # Python service docs
β”œβ”€β”€ demo-data/ # Sample QuickBooks data
β”œβ”€β”€ *.sql # Database schemas
└── README.md

πŸ§ͺ Development

Available Scripts

npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript check

Python Service Development

cd python-service
pip install -r requirements.txt
uvicorn invoice_parser:app --reload --port 8000

πŸ“š API Endpoints

Intake Processing

  • POST /api/intake - Process intake forms
  • GET /api/intake - Retrieve intake data

File Upload

  • POST /api/upload - Upload and process files
  • GET /api/upload - Retrieve file metadata

Migration Progress

  • GET /api/progress - Get migration status
  • PUT /api/progress - Update progress

Transactions

  • GET /api/transactions - List transactions
  • POST /api/transactions - Create transaction
  • PUT /api/transactions/:id - Update transaction
  • DELETE /api/transactions/:id - Delete transaction

Support Portal

  • GET /api/support/tickets - List support tickets
  • POST /api/support/tickets - Create ticket
  • PUT /api/support/tickets/:id - Update ticket
  • GET /api/support/messages - Get messages
  • POST /api/support/messages - Send message

Python Service

  • POST /parse-invoice - Parse invoice with AI
  • POST /parse-document - Parse any document
  • GET /health - Health check

πŸ—„οΈ Database Schema

Core Tables

  • intake_form - User intake data
  • migration_status - Migration progress
  • documents - File metadata
  • parsed_invoices - Extracted invoice data

Historical Data

  • transactions - Financial transactions
  • transaction_changes - Change tracking
  • audit_events - System audit trail
  • data_snapshots - Data versioning

Support System

  • support_tickets - Help tickets
  • support_messages - Ticket messages
  • support_attachments - File attachments
  • support_knowledge_base - Help articles

πŸ€– AI Integration

Anthropic Claude

  • Intake form analysis
  • Migration planning
  • Customer support

OpenAI GPT-4

  • Invoice parsing
  • Document processing
  • Data validation

QuickBooks Parser

  • CSV/IIF file parsing
  • Data validation
  • Migration mapping

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Configure environment variables
  3. Deploy automatically on push to main

Netlify

  1. Import your GitHub repository
  2. Set build command: npm run build
  3. Set publish directory: .next

Python Service (Railway/Render)

cd python-service
railway login
railway init
railway up

πŸ”’ Security

Authentication

  • Supabase Auth integration
  • JWT token validation
  • Role-based access control

Data Protection

  • Row Level Security (RLS)
  • Encrypted data storage
  • Secure file uploads

API Security

  • Rate limiting
  • Input validation
  • CORS configuration

πŸ› Troubleshooting

Common Issues

  1. Build Errors

    # Clear cache and reinstall
    rm -rf node_modules .next
    npm install
    npm run build
  2. Environment Variables

    • Ensure all required variables are set
    • Check for typos in variable names
    • Restart development server after changes
  3. Supabase Connection

    • Verify URL and keys are correct
    • Check network connectivity
    • Review Supabase dashboard for errors

πŸ“„ License

This project is proprietary software. All rights reserved.

🀝 Contributing

See CONTRIBUTING.md for contribution guidelines.

πŸ‘₯ Team

  • Baheem - Project Lead & Full Stack
  • Dante - Frontend UI/UX
  • Thomas - Backend API/Database
  • Pio - DevOps & Infrastructure
  • Sean - AI/ML Integration
  • Adrian - Testing & Quality Assurance

Built with ❀️ by the Escape Ramp Team

About

πŸš€ Escape Ramp: Complete QuickBooks Migration Solution - Modern SaaS tool helping businesses migrate from QuickBooks Desktop to cloud alternatives with AI-powered guidance, transparent pricing, and advanced analytics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Escape Ramp

A modern SaaS platform helping small businesses migrate from QuickBooks Desktop to cloud-based solutions.

πŸš€ Tech Stack

Next.jsTypeScriptTailwind CSSSupabaseAnthropic

πŸ“‹ Quick Links

β€’ Live Demo β€’ Frontend Repo β€’ Backend Repo


🎯 Overview

Escape Ramp is a comprehensive SaaS platform that helps small businesses migrate from QuickBooks Desktop to cloud-based solutions. Built with modern web technologies, it provides an intuitive interface for AI-powered migration assistance, document processing, and real-time progress tracking.

✨ Key Features

  • πŸ€– AI-Powered Intake Assistant - Conversational onboarding flow
  • πŸ“ Document Upload & Processing - Drag-and-drop file handling
  • πŸ“Š Historical Data Tracker - Complete audit trail and analytics
  • 🎧 Support Portal - Integrated help desk and live chat
  • πŸ“ˆ Real-time Dashboard - Migration progress and analytics
  • πŸ”’ Secure Authentication - Supabase Auth integration

πŸ—οΈ Architecture

This repository contains the original monorepo structure. For production use, we recommend using our split repositories:

πŸ› οΈ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • Anthropic API key

Installation

# Clone the repository
git clone https://github.com/BTheCoderr/escape-ramp.git
cd escape-ramp
# Install dependencies
npm install
# Set up environment variables
cp env.example .env.local
# Edit .env.local with your configuration# Start development server
npm run dev

Open http://localhost:3000 to view the application.

πŸ”§ Environment Variables

Create a .env.local file with the following variables:

# Supabase ConfigurationNEXT_PUBLIC_SUPABASE_URL=your_supabase_urlNEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keySUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key# AI ServicesANTHROPIC_API_KEY=your_anthropic_api_keyOPENAI_API_KEY=your_openai_api_key# QuickBooks IntegrationQUICKBOOKS_CLIENT_ID=your_quickbooks_client_idQUICKBOOKS_CLIENT_SECRET=your_quickbooks_client_secretQUICKBOOKS_REDIRECT_URI=your_redirect_uri# Email ServiceRESEND_API_KEY=your_resend_api_key# Payment ProcessingSTRIPE_SECRET_KEY=your_stripe_secret_keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key

πŸ“ Project Structure

escape-ramp/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ app/ # Next.js App Router
β”‚ β”‚ β”œβ”€β”€ api/ # API routes
β”‚ β”‚ β”‚ β”œβ”€β”€ intake/ # Intake form API
β”‚ β”‚ β”‚ β”œβ”€β”€ upload/ # File upload API
β”‚ β”‚ β”‚ β”œβ”€β”€ progress/ # Progress tracking API
β”‚ β”‚ β”‚ β”œβ”€β”€ transactions/ # Transaction CRUD
β”‚ β”‚ β”‚ β”œβ”€β”€ audit/ # Audit trail
β”‚ β”‚ β”‚ └── support/ # Support portal APIs
β”‚ β”‚ β”œβ”€β”€ layout.tsx # Root layout
β”‚ β”‚ └── page.tsx # Main page
β”‚ β”œβ”€β”€ components/ # React components
β”‚ β”‚ β”œβ”€β”€ Dashboard.tsx # Main dashboard
β”‚ β”‚ β”œβ”€β”€ AIAssistant.tsx # AI-powered intake
β”‚ β”‚ β”œβ”€β”€ DocumentUpload.tsx # File upload
β”‚ β”‚ β”œβ”€β”€ HistoricalDataTracker.tsx # Data tracking
β”‚ β”‚ β”œβ”€β”€ SupportPortal.tsx # Support system
β”‚ β”‚ └── Navigation.tsx # Sidebar navigation
β”‚ └── lib/ # Utility libraries
β”‚ β”œβ”€β”€ types.ts # TypeScript types
β”‚ β”œβ”€β”€ store.ts # Zustand store
β”‚ β”œβ”€β”€ supabase.ts # Supabase client
β”‚ β”œβ”€β”€ ai-service.ts # AI service integration
β”‚ β”œβ”€β”€ quickbooks-parser.ts # QB data parsing
β”‚ └── utils.ts # Utility functions
β”œβ”€β”€ python-service/ # Python microservices
β”‚ β”œβ”€β”€ invoice_parser.py # Invoice parsing service
β”‚ β”œβ”€β”€ requirements.txt # Python dependencies
β”‚ └── README.md # Python service docs
β”œβ”€β”€ demo-data/ # Sample QuickBooks data
β”œβ”€β”€ *.sql # Database schemas
└── README.md

πŸ§ͺ Development

Available Scripts

npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript check

Python Service Development

cd python-service
pip install -r requirements.txt
uvicorn invoice_parser:app --reload --port 8000

πŸ“š API Endpoints

Intake Processing

  • POST /api/intake - Process intake forms
  • GET /api/intake - Retrieve intake data

File Upload

  • POST /api/upload - Upload and process files
  • GET /api/upload - Retrieve file metadata

Migration Progress

  • GET /api/progress - Get migration status
  • PUT /api/progress - Update progress

Transactions

  • GET /api/transactions - List transactions
  • POST /api/transactions - Create transaction
  • PUT /api/transactions/:id - Update transaction
  • DELETE /api/transactions/:id - Delete transaction

Support Portal

  • GET /api/support/tickets - List support tickets
  • POST /api/support/tickets - Create ticket
  • PUT /api/support/tickets/:id - Update ticket
  • GET /api/support/messages - Get messages
  • POST /api/support/messages - Send message

Python Service

  • POST /parse-invoice - Parse invoice with AI
  • POST /parse-document - Parse any document
  • GET /health - Health check

πŸ—„οΈ Database Schema

Core Tables

  • intake_form - User intake data
  • migration_status - Migration progress
  • documents - File metadata
  • parsed_invoices - Extracted invoice data

Historical Data

  • transactions - Financial transactions
  • transaction_changes - Change tracking
  • audit_events - System audit trail
  • data_snapshots - Data versioning

Support System

  • support_tickets - Help tickets
  • support_messages - Ticket messages
  • support_attachments - File attachments
  • support_knowledge_base - Help articles

πŸ€– AI Integration

Anthropic Claude

  • Intake form analysis
  • Migration planning
  • Customer support

OpenAI GPT-4

  • Invoice parsing
  • Document processing
  • Data validation

QuickBooks Parser

  • CSV/IIF file parsing
  • Data validation
  • Migration mapping

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Configure environment variables
  3. Deploy automatically on push to main

Netlify

  1. Import your GitHub repository
  2. Set build command: npm run build
  3. Set publish directory: .next

Python Service (Railway/Render)

cd python-service
railway login
railway init
railway up

πŸ”’ Security

Authentication

  • Supabase Auth integration
  • JWT token validation
  • Role-based access control

Data Protection

  • Row Level Security (RLS)
  • Encrypted data storage
  • Secure file uploads

API Security

  • Rate limiting
  • Input validation
  • CORS configuration

πŸ› Troubleshooting

Common Issues

  1. Build Errors

    # Clear cache and reinstall
    rm -rf node_modules .next
    npm install
    npm run build
  2. Environment Variables

    • Ensure all required variables are set
    • Check for typos in variable names
    • Restart development server after changes
  3. Supabase Connection

    • Verify URL and keys are correct
    • Check network connectivity
    • Review Supabase dashboard for errors

πŸ“„ License

This project is proprietary software. All rights reserved.

🀝 Contributing

See CONTRIBUTING.md for contribution guidelines.

πŸ‘₯ Team

  • Baheem - Project Lead & Full Stack
  • Dante - Frontend UI/UX
  • Thomas - Backend API/Database
  • Pio - DevOps & Infrastructure
  • Sean - AI/ML Integration
  • Adrian - Testing & Quality Assurance

Built with ❀️ by the Escape Ramp Team

About

πŸš€ Escape Ramp: Complete QuickBooks Migration Solution - Modern SaaS tool helping businesses migrate from QuickBooks Desktop to cloud alternatives with AI-powered guidance, transparent pricing, and advanced analytics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Escape Ramp

A modern SaaS platform helping small businesses migrate from QuickBooks Desktop to cloud-based solutions.

πŸš€ Tech Stack

Next.jsTypeScriptTailwind CSSSupabaseAnthropic

πŸ“‹ Quick Links

β€’ Live Demo β€’ Frontend Repo β€’ Backend Repo


🎯 Overview

Escape Ramp is a comprehensive SaaS platform that helps small businesses migrate from QuickBooks Desktop to cloud-based solutions. Built with modern web technologies, it provides an intuitive interface for AI-powered migration assistance, document processing, and real-time progress tracking.

✨ Key Features

  • πŸ€– AI-Powered Intake Assistant - Conversational onboarding flow
  • πŸ“ Document Upload & Processing - Drag-and-drop file handling
  • πŸ“Š Historical Data Tracker - Complete audit trail and analytics
  • 🎧 Support Portal - Integrated help desk and live chat
  • πŸ“ˆ Real-time Dashboard - Migration progress and analytics
  • πŸ”’ Secure Authentication - Supabase Auth integration

πŸ—οΈ Architecture

This repository contains the original monorepo structure. For production use, we recommend using our split repositories:

πŸ› οΈ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • Anthropic API key

Installation

# Clone the repository
git clone https://github.com/BTheCoderr/escape-ramp.git
cd escape-ramp
# Install dependencies
npm install
# Set up environment variables
cp env.example .env.local
# Edit .env.local with your configuration# Start development server
npm run dev

Open http://localhost:3000 to view the application.

πŸ”§ Environment Variables

Create a .env.local file with the following variables:

# Supabase ConfigurationNEXT_PUBLIC_SUPABASE_URL=your_supabase_urlNEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keySUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key# AI ServicesANTHROPIC_API_KEY=your_anthropic_api_keyOPENAI_API_KEY=your_openai_api_key# QuickBooks IntegrationQUICKBOOKS_CLIENT_ID=your_quickbooks_client_idQUICKBOOKS_CLIENT_SECRET=your_quickbooks_client_secretQUICKBOOKS_REDIRECT_URI=your_redirect_uri# Email ServiceRESEND_API_KEY=your_resend_api_key# Payment ProcessingSTRIPE_SECRET_KEY=your_stripe_secret_keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key

πŸ“ Project Structure

escape-ramp/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ app/ # Next.js App Router
β”‚ β”‚ β”œβ”€β”€ api/ # API routes
β”‚ β”‚ β”‚ β”œβ”€β”€ intake/ # Intake form API
β”‚ β”‚ β”‚ β”œβ”€β”€ upload/ # File upload API
β”‚ β”‚ β”‚ β”œβ”€β”€ progress/ # Progress tracking API
β”‚ β”‚ β”‚ β”œβ”€β”€ transactions/ # Transaction CRUD
β”‚ β”‚ β”‚ β”œβ”€β”€ audit/ # Audit trail
β”‚ β”‚ β”‚ └── support/ # Support portal APIs
β”‚ β”‚ β”œβ”€β”€ layout.tsx # Root layout
β”‚ β”‚ └── page.tsx # Main page
β”‚ β”œβ”€β”€ components/ # React components
β”‚ β”‚ β”œβ”€β”€ Dashboard.tsx # Main dashboard
β”‚ β”‚ β”œβ”€β”€ AIAssistant.tsx # AI-powered intake
β”‚ β”‚ β”œβ”€β”€ DocumentUpload.tsx # File upload
β”‚ β”‚ β”œβ”€β”€ HistoricalDataTracker.tsx # Data tracking
β”‚ β”‚ β”œβ”€β”€ SupportPortal.tsx # Support system
β”‚ β”‚ └── Navigation.tsx # Sidebar navigation
β”‚ └── lib/ # Utility libraries
β”‚ β”œβ”€β”€ types.ts # TypeScript types
β”‚ β”œβ”€β”€ store.ts # Zustand store
β”‚ β”œβ”€β”€ supabase.ts # Supabase client
β”‚ β”œβ”€β”€ ai-service.ts # AI service integration
β”‚ β”œβ”€β”€ quickbooks-parser.ts # QB data parsing
β”‚ └── utils.ts # Utility functions
β”œβ”€β”€ python-service/ # Python microservices
β”‚ β”œβ”€β”€ invoice_parser.py # Invoice parsing service
β”‚ β”œβ”€β”€ requirements.txt # Python dependencies
β”‚ └── README.md # Python service docs
β”œβ”€β”€ demo-data/ # Sample QuickBooks data
β”œβ”€β”€ *.sql # Database schemas
└── README.md

πŸ§ͺ Development

Available Scripts

npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript check

Python Service Development

cd python-service
pip install -r requirements.txt
uvicorn invoice_parser:app --reload --port 8000

πŸ“š API Endpoints

Intake Processing

  • POST /api/intake - Process intake forms
  • GET /api/intake - Retrieve intake data

File Upload

  • POST /api/upload - Upload and process files
  • GET /api/upload - Retrieve file metadata

Migration Progress

  • GET /api/progress - Get migration status
  • PUT /api/progress - Update progress

Transactions

  • GET /api/transactions - List transactions
  • POST /api/transactions - Create transaction
  • PUT /api/transactions/:id - Update transaction
  • DELETE /api/transactions/:id - Delete transaction

Support Portal

  • GET /api/support/tickets - List support tickets
  • POST /api/support/tickets - Create ticket
  • PUT /api/support/tickets/:id - Update ticket
  • GET /api/support/messages - Get messages
  • POST /api/support/messages - Send message

Python Service

  • POST /parse-invoice - Parse invoice with AI
  • POST /parse-document - Parse any document
  • GET /health - Health check

πŸ—„οΈ Database Schema

Core Tables

  • intake_form - User intake data
  • migration_status - Migration progress
  • documents - File metadata
  • parsed_invoices - Extracted invoice data

Historical Data

  • transactions - Financial transactions
  • transaction_changes - Change tracking
  • audit_events - System audit trail
  • data_snapshots - Data versioning

Support System

  • support_tickets - Help tickets
  • support_messages - Ticket messages
  • support_attachments - File attachments
  • support_knowledge_base - Help articles

πŸ€– AI Integration

Anthropic Claude

  • Intake form analysis
  • Migration planning
  • Customer support

OpenAI GPT-4

  • Invoice parsing
  • Document processing
  • Data validation

QuickBooks Parser

  • CSV/IIF file parsing
  • Data validation
  • Migration mapping

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Configure environment variables
  3. Deploy automatically on push to main

Netlify

  1. Import your GitHub repository
  2. Set build command: npm run build
  3. Set publish directory: .next

Python Service (Railway/Render)

cd python-service
railway login
railway init
railway up

πŸ”’ Security

Authentication

  • Supabase Auth integration
  • JWT token validation
  • Role-based access control

Data Protection

  • Row Level Security (RLS)
  • Encrypted data storage
  • Secure file uploads

API Security

  • Rate limiting
  • Input validation
  • CORS configuration

πŸ› Troubleshooting

Common Issues

  1. Build Errors

    # Clear cache and reinstall
    rm -rf node_modules .next
    npm install
    npm run build
  2. Environment Variables

    • Ensure all required variables are set
    • Check for typos in variable names
    • Restart development server after changes
  3. Supabase Connection

    • Verify URL and keys are correct
    • Check network connectivity
    • Review Supabase dashboard for errors

πŸ“„ License

This project is proprietary software. All rights reserved.

🀝 Contributing

See CONTRIBUTING.md for contribution guidelines.

πŸ‘₯ Team

  • Baheem - Project Lead & Full Stack
  • Dante - Frontend UI/UX
  • Thomas - Backend API/Database
  • Pio - DevOps & Infrastructure
  • Sean - AI/ML Integration
  • Adrian - Testing & Quality Assurance

Built with ❀️ by the Escape Ramp Team

About

πŸš€ Escape Ramp: Complete QuickBooks Migration Solution - Modern SaaS tool helping businesses migrate from QuickBooks Desktop to cloud alternatives with AI-powered guidance, transparent pricing, and advanced analytics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Escape Ramp

A modern SaaS platform helping small businesses migrate from QuickBooks Desktop to cloud-based solutions.

πŸš€ Tech Stack

Next.jsTypeScriptTailwind CSSSupabaseAnthropic

πŸ“‹ Quick Links

β€’ Live Demo β€’ Frontend Repo β€’ Backend Repo


🎯 Overview

Escape Ramp is a comprehensive SaaS platform that helps small businesses migrate from QuickBooks Desktop to cloud-based solutions. Built with modern web technologies, it provides an intuitive interface for AI-powered migration assistance, document processing, and real-time progress tracking.

✨ Key Features

  • πŸ€– AI-Powered Intake Assistant - Conversational onboarding flow
  • πŸ“ Document Upload & Processing - Drag-and-drop file handling
  • πŸ“Š Historical Data Tracker - Complete audit trail and analytics
  • 🎧 Support Portal - Integrated help desk and live chat
  • πŸ“ˆ Real-time Dashboard - Migration progress and analytics
  • πŸ”’ Secure Authentication - Supabase Auth integration

πŸ—οΈ Architecture

This repository contains the original monorepo structure. For production use, we recommend using our split repositories:

πŸ› οΈ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • Anthropic API key

Installation

# Clone the repository
git clone https://github.com/BTheCoderr/escape-ramp.git
cd escape-ramp
# Install dependencies
npm install
# Set up environment variables
cp env.example .env.local
# Edit .env.local with your configuration# Start development server
npm run dev

Open http://localhost:3000 to view the application.

πŸ”§ Environment Variables

Create a .env.local file with the following variables:

# Supabase ConfigurationNEXT_PUBLIC_SUPABASE_URL=your_supabase_urlNEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keySUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key# AI ServicesANTHROPIC_API_KEY=your_anthropic_api_keyOPENAI_API_KEY=your_openai_api_key# QuickBooks IntegrationQUICKBOOKS_CLIENT_ID=your_quickbooks_client_idQUICKBOOKS_CLIENT_SECRET=your_quickbooks_client_secretQUICKBOOKS_REDIRECT_URI=your_redirect_uri# Email ServiceRESEND_API_KEY=your_resend_api_key# Payment ProcessingSTRIPE_SECRET_KEY=your_stripe_secret_keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key

πŸ“ Project Structure

escape-ramp/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ app/ # Next.js App Router
β”‚ β”‚ β”œβ”€β”€ api/ # API routes
β”‚ β”‚ β”‚ β”œβ”€β”€ intake/ # Intake form API
β”‚ β”‚ β”‚ β”œβ”€β”€ upload/ # File upload API
β”‚ β”‚ β”‚ β”œβ”€β”€ progress/ # Progress tracking API
β”‚ β”‚ β”‚ β”œβ”€β”€ transactions/ # Transaction CRUD
β”‚ β”‚ β”‚ β”œβ”€β”€ audit/ # Audit trail
β”‚ β”‚ β”‚ └── support/ # Support portal APIs
β”‚ β”‚ β”œβ”€β”€ layout.tsx # Root layout
β”‚ β”‚ └── page.tsx # Main page
β”‚ β”œβ”€β”€ components/ # React components
β”‚ β”‚ β”œβ”€β”€ Dashboard.tsx # Main dashboard
β”‚ β”‚ β”œβ”€β”€ AIAssistant.tsx # AI-powered intake
β”‚ β”‚ β”œβ”€β”€ DocumentUpload.tsx # File upload
β”‚ β”‚ β”œβ”€β”€ HistoricalDataTracker.tsx # Data tracking
β”‚ β”‚ β”œβ”€β”€ SupportPortal.tsx # Support system
β”‚ β”‚ └── Navigation.tsx # Sidebar navigation
β”‚ └── lib/ # Utility libraries
β”‚ β”œβ”€β”€ types.ts # TypeScript types
β”‚ β”œβ”€β”€ store.ts # Zustand store
β”‚ β”œβ”€β”€ supabase.ts # Supabase client
β”‚ β”œβ”€β”€ ai-service.ts # AI service integration
β”‚ β”œβ”€β”€ quickbooks-parser.ts # QB data parsing
β”‚ └── utils.ts # Utility functions
β”œβ”€β”€ python-service/ # Python microservices
β”‚ β”œβ”€β”€ invoice_parser.py # Invoice parsing service
β”‚ β”œβ”€β”€ requirements.txt # Python dependencies
β”‚ └── README.md # Python service docs
β”œβ”€β”€ demo-data/ # Sample QuickBooks data
β”œβ”€β”€ *.sql # Database schemas
└── README.md

πŸ§ͺ Development

Available Scripts

npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript check

Python Service Development

cd python-service
pip install -r requirements.txt
uvicorn invoice_parser:app --reload --port 8000

πŸ“š API Endpoints

Intake Processing

  • POST /api/intake - Process intake forms
  • GET /api/intake - Retrieve intake data

File Upload

  • POST /api/upload - Upload and process files
  • GET /api/upload - Retrieve file metadata

Migration Progress

  • GET /api/progress - Get migration status
  • PUT /api/progress - Update progress

Transactions

  • GET /api/transactions - List transactions
  • POST /api/transactions - Create transaction
  • PUT /api/transactions/:id - Update transaction
  • DELETE /api/transactions/:id - Delete transaction

Support Portal

  • GET /api/support/tickets - List support tickets
  • POST /api/support/tickets - Create ticket
  • PUT /api/support/tickets/:id - Update ticket
  • GET /api/support/messages - Get messages
  • POST /api/support/messages - Send message

Python Service

  • POST /parse-invoice - Parse invoice with AI
  • POST /parse-document - Parse any document
  • GET /health - Health check

πŸ—„οΈ Database Schema

Core Tables

  • intake_form - User intake data
  • migration_status - Migration progress
  • documents - File metadata
  • parsed_invoices - Extracted invoice data

Historical Data

  • transactions - Financial transactions
  • transaction_changes - Change tracking
  • audit_events - System audit trail
  • data_snapshots - Data versioning

Support System

  • support_tickets - Help tickets
  • support_messages - Ticket messages
  • support_attachments - File attachments
  • support_knowledge_base - Help articles

πŸ€– AI Integration

Anthropic Claude

  • Intake form analysis
  • Migration planning
  • Customer support

OpenAI GPT-4

  • Invoice parsing
  • Document processing
  • Data validation

QuickBooks Parser

  • CSV/IIF file parsing
  • Data validation
  • Migration mapping

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Configure environment variables
  3. Deploy automatically on push to main

Netlify

  1. Import your GitHub repository
  2. Set build command: npm run build
  3. Set publish directory: .next

Python Service (Railway/Render)

cd python-service
railway login
railway init
railway up

πŸ”’ Security

Authentication

  • Supabase Auth integration
  • JWT token validation
  • Role-based access control

Data Protection

  • Row Level Security (RLS)
  • Encrypted data storage
  • Secure file uploads

API Security

  • Rate limiting
  • Input validation
  • CORS configuration

πŸ› Troubleshooting

Common Issues

  1. Build Errors

    # Clear cache and reinstall
    rm -rf node_modules .next
    npm install
    npm run build
  2. Environment Variables

    • Ensure all required variables are set
    • Check for typos in variable names
    • Restart development server after changes
  3. Supabase Connection

    • Verify URL and keys are correct
    • Check network connectivity
    • Review Supabase dashboard for errors

πŸ“„ License

This project is proprietary software. All rights reserved.

🀝 Contributing

See CONTRIBUTING.md for contribution guidelines.

πŸ‘₯ Team

  • Baheem - Project Lead & Full Stack
  • Dante - Frontend UI/UX
  • Thomas - Backend API/Database
  • Pio - DevOps & Infrastructure
  • Sean - AI/ML Integration
  • Adrian - Testing & Quality Assurance

Built with ❀️ by the Escape Ramp Team

About

πŸš€ Escape Ramp: Complete QuickBooks Migration Solution - Modern SaaS tool helping businesses migrate from QuickBooks Desktop to cloud alternatives with AI-powered guidance, transparent pricing, and advanced analytics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Escape Ramp

A modern SaaS platform helping small businesses migrate from QuickBooks Desktop to cloud-based solutions.

πŸš€ Tech Stack

Next.jsTypeScriptTailwind CSSSupabaseAnthropic

πŸ“‹ Quick Links

β€’ Live Demo β€’ Frontend Repo β€’ Backend Repo


🎯 Overview

Escape Ramp is a comprehensive SaaS platform that helps small businesses migrate from QuickBooks Desktop to cloud-based solutions. Built with modern web technologies, it provides an intuitive interface for AI-powered migration assistance, document processing, and real-time progress tracking.

✨ Key Features

  • πŸ€– AI-Powered Intake Assistant - Conversational onboarding flow
  • πŸ“ Document Upload & Processing - Drag-and-drop file handling
  • πŸ“Š Historical Data Tracker - Complete audit trail and analytics
  • 🎧 Support Portal - Integrated help desk and live chat
  • πŸ“ˆ Real-time Dashboard - Migration progress and analytics
  • πŸ”’ Secure Authentication - Supabase Auth integration

πŸ—οΈ Architecture

This repository contains the original monorepo structure. For production use, we recommend using our split repositories:

πŸ› οΈ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • Anthropic API key

Installation

# Clone the repository
git clone https://github.com/BTheCoderr/escape-ramp.git
cd escape-ramp
# Install dependencies
npm install
# Set up environment variables
cp env.example .env.local
# Edit .env.local with your configuration# Start development server
npm run dev

Open http://localhost:3000 to view the application.

πŸ”§ Environment Variables

Create a .env.local file with the following variables:

# Supabase ConfigurationNEXT_PUBLIC_SUPABASE_URL=your_supabase_urlNEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keySUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key# AI ServicesANTHROPIC_API_KEY=your_anthropic_api_keyOPENAI_API_KEY=your_openai_api_key# QuickBooks IntegrationQUICKBOOKS_CLIENT_ID=your_quickbooks_client_idQUICKBOOKS_CLIENT_SECRET=your_quickbooks_client_secretQUICKBOOKS_REDIRECT_URI=your_redirect_uri# Email ServiceRESEND_API_KEY=your_resend_api_key# Payment ProcessingSTRIPE_SECRET_KEY=your_stripe_secret_keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key

πŸ“ Project Structure

escape-ramp/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ app/ # Next.js App Router
β”‚ β”‚ β”œβ”€β”€ api/ # API routes
β”‚ β”‚ β”‚ β”œβ”€β”€ intake/ # Intake form API
β”‚ β”‚ β”‚ β”œβ”€β”€ upload/ # File upload API
β”‚ β”‚ β”‚ β”œβ”€β”€ progress/ # Progress tracking API
β”‚ β”‚ β”‚ β”œβ”€β”€ transactions/ # Transaction CRUD
β”‚ β”‚ β”‚ β”œβ”€β”€ audit/ # Audit trail
β”‚ β”‚ β”‚ └── support/ # Support portal APIs
β”‚ β”‚ β”œβ”€β”€ layout.tsx # Root layout
β”‚ β”‚ └── page.tsx # Main page
β”‚ β”œβ”€β”€ components/ # React components
β”‚ β”‚ β”œβ”€β”€ Dashboard.tsx # Main dashboard
β”‚ β”‚ β”œβ”€β”€ AIAssistant.tsx # AI-powered intake
β”‚ β”‚ β”œβ”€β”€ DocumentUpload.tsx # File upload
β”‚ β”‚ β”œβ”€β”€ HistoricalDataTracker.tsx # Data tracking
β”‚ β”‚ β”œβ”€β”€ SupportPortal.tsx # Support system
β”‚ β”‚ └── Navigation.tsx # Sidebar navigation
β”‚ └── lib/ # Utility libraries
β”‚ β”œβ”€β”€ types.ts # TypeScript types
β”‚ β”œβ”€β”€ store.ts # Zustand store
β”‚ β”œβ”€β”€ supabase.ts # Supabase client
β”‚ β”œβ”€β”€ ai-service.ts # AI service integration
β”‚ β”œβ”€β”€ quickbooks-parser.ts # QB data parsing
β”‚ └── utils.ts # Utility functions
β”œβ”€β”€ python-service/ # Python microservices
β”‚ β”œβ”€β”€ invoice_parser.py # Invoice parsing service
β”‚ β”œβ”€β”€ requirements.txt # Python dependencies
β”‚ └── README.md # Python service docs
β”œβ”€β”€ demo-data/ # Sample QuickBooks data
β”œβ”€β”€ *.sql # Database schemas
└── README.md

πŸ§ͺ Development

Available Scripts

npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript check

Python Service Development

cd python-service
pip install -r requirements.txt
uvicorn invoice_parser:app --reload --port 8000

πŸ“š API Endpoints

Intake Processing

  • POST /api/intake - Process intake forms
  • GET /api/intake - Retrieve intake data

File Upload

  • POST /api/upload - Upload and process files
  • GET /api/upload - Retrieve file metadata

Migration Progress

  • GET /api/progress - Get migration status
  • PUT /api/progress - Update progress

Transactions

  • GET /api/transactions - List transactions
  • POST /api/transactions - Create transaction
  • PUT /api/transactions/:id - Update transaction
  • DELETE /api/transactions/:id - Delete transaction

Support Portal

  • GET /api/support/tickets - List support tickets
  • POST /api/support/tickets - Create ticket
  • PUT /api/support/tickets/:id - Update ticket
  • GET /api/support/messages - Get messages
  • POST /api/support/messages - Send message

Python Service

  • POST /parse-invoice - Parse invoice with AI
  • POST /parse-document - Parse any document
  • GET /health - Health check

πŸ—„οΈ Database Schema

Core Tables

  • intake_form - User intake data
  • migration_status - Migration progress
  • documents - File metadata
  • parsed_invoices - Extracted invoice data

Historical Data

  • transactions - Financial transactions
  • transaction_changes - Change tracking
  • audit_events - System audit trail
  • data_snapshots - Data versioning

Support System

  • support_tickets - Help tickets
  • support_messages - Ticket messages
  • support_attachments - File attachments
  • support_knowledge_base - Help articles

πŸ€– AI Integration

Anthropic Claude

  • Intake form analysis
  • Migration planning
  • Customer support

OpenAI GPT-4

  • Invoice parsing
  • Document processing
  • Data validation

QuickBooks Parser

  • CSV/IIF file parsing
  • Data validation
  • Migration mapping

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Configure environment variables
  3. Deploy automatically on push to main

Netlify

  1. Import your GitHub repository
  2. Set build command: npm run build
  3. Set publish directory: .next

Python Service (Railway/Render)

cd python-service
railway login
railway init
railway up

πŸ”’ Security

Authentication

  • Supabase Auth integration
  • JWT token validation
  • Role-based access control

Data Protection

  • Row Level Security (RLS)
  • Encrypted data storage
  • Secure file uploads

API Security

  • Rate limiting
  • Input validation
  • CORS configuration

πŸ› Troubleshooting

Common Issues

  1. Build Errors

    # Clear cache and reinstall
    rm -rf node_modules .next
    npm install
    npm run build
  2. Environment Variables

    • Ensure all required variables are set
    • Check for typos in variable names
    • Restart development server after changes
  3. Supabase Connection

    • Verify URL and keys are correct
    • Check network connectivity
    • Review Supabase dashboard for errors

πŸ“„ License

This project is proprietary software. All rights reserved.

🀝 Contributing

See CONTRIBUTING.md for contribution guidelines.

πŸ‘₯ Team

  • Baheem - Project Lead & Full Stack
  • Dante - Frontend UI/UX
  • Thomas - Backend API/Database
  • Pio - DevOps & Infrastructure
  • Sean - AI/ML Integration
  • Adrian - Testing & Quality Assurance

Built with ❀️ by the Escape Ramp Team

About

πŸš€ Escape Ramp: Complete QuickBooks Migration Solution - Modern SaaS tool helping businesses migrate from QuickBooks Desktop to cloud alternatives with AI-powered guidance, transparent pricing, and advanced analytics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Escape Ramp

A modern SaaS platform helping small businesses migrate from QuickBooks Desktop to cloud-based solutions.

πŸš€ Tech Stack

Next.jsTypeScriptTailwind CSSSupabaseAnthropic

πŸ“‹ Quick Links

β€’ Live Demo β€’ Frontend Repo β€’ Backend Repo


🎯 Overview

Escape Ramp is a comprehensive SaaS platform that helps small businesses migrate from QuickBooks Desktop to cloud-based solutions. Built with modern web technologies, it provides an intuitive interface for AI-powered migration assistance, document processing, and real-time progress tracking.

✨ Key Features

  • πŸ€– AI-Powered Intake Assistant - Conversational onboarding flow
  • πŸ“ Document Upload & Processing - Drag-and-drop file handling
  • πŸ“Š Historical Data Tracker - Complete audit trail and analytics
  • 🎧 Support Portal - Integrated help desk and live chat
  • πŸ“ˆ Real-time Dashboard - Migration progress and analytics
  • πŸ”’ Secure Authentication - Supabase Auth integration

πŸ—οΈ Architecture

This repository contains the original monorepo structure. For production use, we recommend using our split repositories:

πŸ› οΈ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • Anthropic API key

Installation

# Clone the repository
git clone https://github.com/BTheCoderr/escape-ramp.git
cd escape-ramp
# Install dependencies
npm install
# Set up environment variables
cp env.example .env.local
# Edit .env.local with your configuration# Start development server
npm run dev

Open http://localhost:3000 to view the application.

πŸ”§ Environment Variables

Create a .env.local file with the following variables:

# Supabase ConfigurationNEXT_PUBLIC_SUPABASE_URL=your_supabase_urlNEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keySUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key# AI ServicesANTHROPIC_API_KEY=your_anthropic_api_keyOPENAI_API_KEY=your_openai_api_key# QuickBooks IntegrationQUICKBOOKS_CLIENT_ID=your_quickbooks_client_idQUICKBOOKS_CLIENT_SECRET=your_quickbooks_client_secretQUICKBOOKS_REDIRECT_URI=your_redirect_uri# Email ServiceRESEND_API_KEY=your_resend_api_key# Payment ProcessingSTRIPE_SECRET_KEY=your_stripe_secret_keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key

πŸ“ Project Structure

escape-ramp/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ app/ # Next.js App Router
β”‚ β”‚ β”œβ”€β”€ api/ # API routes
β”‚ β”‚ β”‚ β”œβ”€β”€ intake/ # Intake form API
β”‚ β”‚ β”‚ β”œβ”€β”€ upload/ # File upload API
β”‚ β”‚ β”‚ β”œβ”€β”€ progress/ # Progress tracking API
β”‚ β”‚ β”‚ β”œβ”€β”€ transactions/ # Transaction CRUD
β”‚ β”‚ β”‚ β”œβ”€β”€ audit/ # Audit trail
β”‚ β”‚ β”‚ └── support/ # Support portal APIs
β”‚ β”‚ β”œβ”€β”€ layout.tsx # Root layout
β”‚ β”‚ └── page.tsx # Main page
β”‚ β”œβ”€β”€ components/ # React components
β”‚ β”‚ β”œβ”€β”€ Dashboard.tsx # Main dashboard
β”‚ β”‚ β”œβ”€β”€ AIAssistant.tsx # AI-powered intake
β”‚ β”‚ β”œβ”€β”€ DocumentUpload.tsx # File upload
β”‚ β”‚ β”œβ”€β”€ HistoricalDataTracker.tsx # Data tracking
β”‚ β”‚ β”œβ”€β”€ SupportPortal.tsx # Support system
β”‚ β”‚ └── Navigation.tsx # Sidebar navigation
β”‚ └── lib/ # Utility libraries
β”‚ β”œβ”€β”€ types.ts # TypeScript types
β”‚ β”œβ”€β”€ store.ts # Zustand store
β”‚ β”œβ”€β”€ supabase.ts # Supabase client
β”‚ β”œβ”€β”€ ai-service.ts # AI service integration
β”‚ β”œβ”€β”€ quickbooks-parser.ts # QB data parsing
β”‚ └── utils.ts # Utility functions
β”œβ”€β”€ python-service/ # Python microservices
β”‚ β”œβ”€β”€ invoice_parser.py # Invoice parsing service
β”‚ β”œβ”€β”€ requirements.txt # Python dependencies
β”‚ └── README.md # Python service docs
β”œβ”€β”€ demo-data/ # Sample QuickBooks data
β”œβ”€β”€ *.sql # Database schemas
└── README.md

πŸ§ͺ Development

Available Scripts

npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript check

Python Service Development

cd python-service
pip install -r requirements.txt
uvicorn invoice_parser:app --reload --port 8000

πŸ“š API Endpoints

Intake Processing

  • POST /api/intake - Process intake forms
  • GET /api/intake - Retrieve intake data

File Upload

  • POST /api/upload - Upload and process files
  • GET /api/upload - Retrieve file metadata

Migration Progress

  • GET /api/progress - Get migration status
  • PUT /api/progress - Update progress

Transactions

  • GET /api/transactions - List transactions
  • POST /api/transactions - Create transaction
  • PUT /api/transactions/:id - Update transaction
  • DELETE /api/transactions/:id - Delete transaction

Support Portal

  • GET /api/support/tickets - List support tickets
  • POST /api/support/tickets - Create ticket
  • PUT /api/support/tickets/:id - Update ticket
  • GET /api/support/messages - Get messages
  • POST /api/support/messages - Send message

Python Service

  • POST /parse-invoice - Parse invoice with AI
  • POST /parse-document - Parse any document
  • GET /health - Health check

πŸ—„οΈ Database Schema

Core Tables

  • intake_form - User intake data
  • migration_status - Migration progress
  • documents - File metadata
  • parsed_invoices - Extracted invoice data

Historical Data

  • transactions - Financial transactions
  • transaction_changes - Change tracking
  • audit_events - System audit trail
  • data_snapshots - Data versioning

Support System

  • support_tickets - Help tickets
  • support_messages - Ticket messages
  • support_attachments - File attachments
  • support_knowledge_base - Help articles

πŸ€– AI Integration

Anthropic Claude

  • Intake form analysis
  • Migration planning
  • Customer support

OpenAI GPT-4

  • Invoice parsing
  • Document processing
  • Data validation

QuickBooks Parser

  • CSV/IIF file parsing
  • Data validation
  • Migration mapping

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Configure environment variables
  3. Deploy automatically on push to main

Netlify

  1. Import your GitHub repository
  2. Set build command: npm run build
  3. Set publish directory: .next

Python Service (Railway/Render)

cd python-service
railway login
railway init
railway up

πŸ”’ Security

Authentication

  • Supabase Auth integration
  • JWT token validation
  • Role-based access control

Data Protection

  • Row Level Security (RLS)
  • Encrypted data storage
  • Secure file uploads

API Security

  • Rate limiting
  • Input validation
  • CORS configuration

πŸ› Troubleshooting

Common Issues

  1. Build Errors

    # Clear cache and reinstall
    rm -rf node_modules .next
    npm install
    npm run build
  2. Environment Variables

    • Ensure all required variables are set
    • Check for typos in variable names
    • Restart development server after changes
  3. Supabase Connection

    • Verify URL and keys are correct
    • Check network connectivity
    • Review Supabase dashboard for errors

πŸ“„ License

This project is proprietary software. All rights reserved.

🀝 Contributing

See CONTRIBUTING.md for contribution guidelines.

πŸ‘₯ Team

  • Baheem - Project Lead & Full Stack
  • Dante - Frontend UI/UX
  • Thomas - Backend API/Database
  • Pio - DevOps & Infrastructure
  • Sean - AI/ML Integration
  • Adrian - Testing & Quality Assurance

Built with ❀️ by the Escape Ramp Team

About

πŸš€ Escape Ramp: Complete QuickBooks Migration Solution - Modern SaaS tool helping businesses migrate from QuickBooks Desktop to cloud alternatives with AI-powered guidance, transparent pricing, and advanced analytics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages