/vdbs

Open Source Hackathon - Convert your database diagrams into SQL Schema using the capabilities of Vision API

Primary LanguageTypeScriptMIT LicenseMIT

Medal image

Supabase Open Source Hackathon 2024 Winner šŸ¤©

Table of Contents

Introduction

vdbs stands for "vision database sql" This project allows you to convert your database diagrams into SQL Schema using the capabilities of Vision API. Once your SQL code is ready, you have three integration options for your Supabase projects:

  1. Simply copy and paste the SQL schema into your Supabase dashboard.

  2. Copy the npm command generated after your SQL schema is ready and paste it into your app. This creates a migration file containing the SQL schema.

  3. Use your database connection string, and the SQL schema will be deployed to your remote Supabase project.

vdbs is inspired by v0.dev from Vercel, which allows you to generate UI based on images or your ideas. You can copy the code or use the npm command and integrate the generated code into your project.

Requirements

  • Node >= 18
  • pnpm > 8

Stack

web

  • next: A framework for server-rendered React applications.
  • shadcn/ui: Provides beautifully designed components for UI.
  • monaco-editor/react: A Monaco Editor wrapper for React applications.
  • zustand: A small, fast, and scalable state management library for React.
  • typescript: A typed superset of JavaScript that compiles to plain JavaScript.

Cli

  • tsup: A TypeScript-focused module bundler.
  • chalk: Chalk is a library for styling terminal text with color and formatting options, making console output more visually appealing and readable.
  • commander: Commander is a feature-rich library for creating command-line interfaces (CLIs) in Node.js.
  • execa: Execa is a package that simplifies running external commands in Node.js, providing a more straightforward and powerful interface than Node.js' built-in child_process module.
  • glob: Glob is a package used for pattern matching files and directories, enabling developers to easily find and work with sets of file paths using wildcard characters.
  • ora: Ora is a library that creates elegant terminal spinners and loading indicators.
  • prompts: Prompts is a user-friendly library for creating interactive command-line prompts, allowing developers to easily gather user input in a structured and customizable way. Prompts Repository

Setting Up

OPENAI_API_TOKEN

  • Go to the OpenAI web.
  • Sign in to your account or create a new one.
  • Navigate to your API settings.
  • Generate an Secret key.
  • Copy the generated Secret key.

UPSTASH_REDIS_REST_URL - UPSTASH_REDIS_REST_TOKEN

  • Go to the Uptash console.
  • Sign in to your account or create a new one.
  • Navigate to your database.
  • Copy the generated keys.

Run Locally

1.Clone the vdbs repository:

git clone https://github.com/xavimondev/vdbs

2.Install the dependencies:

pnpm install

3.Start the development:

pnpm dev

Contributors

License

MIT.

Troubleshooting

Using Bun: Could not determine executable to run for package supabase

Upgrade bun's version

bun upgrade

More details: https://twitter.com/bunjavascript/status/1734470860755566815