Skip to content

Next-Gen ERD: Design, Explore, Document and Analyze your database

License

Notifications You must be signed in to change notification settings

datacurse/azimutt

 
 

Repository files navigation

Azimutt logo

Next-Gen ERD: Design, Explore, Document and Analyze your database

azimutt.approadmap@azimuttapp

Azimutt - Easily explore and analyze your database with your team | Product Hunt Join us on Slack

Azimutt is an Entity Relationship Diagram (ERD) targeting real world database schema (big & messy).

Azimutt screenshot

Why building Azimutt?

Databases existed for more than 40 years and despite a lot of tool around them, we couldn't find any providing a great exploration experience.

  • Database clients focus on querying experience, with auto-completion and table/column lists but no visual help
  • ERDs have a great diagram UI but fall short when schema is growing (real-world use cases)
  • Data catalogs are primarily focused on data governance and lineage on big data sector

So we decided to built it 💪

Azimutt started as a schema exploration tool for databases with hundreds of tables, but now it has grown a lot:

Azimutt roadmap

  • Design your schema using AML for a fast diagramming
  • Explore your database using search everywhere, display only useful tables/columns and follow relations
  • Document it with layouts for use cases, features or team scopes and table/column notes
  • Analyze it to discover inconsistencies and best practices

Azimutt goal is to be your ultimate tool to understand your database.

Local development

Azimutt is built with Elm/elm-spa (editor) and Elixir/Phoenix (backend & admin).

For local development you will need to set up the environment:

  • install npm, Elm & elm-spa
  • install Phoenix and Elixir if needed
  • install PostgreSQL with a user postgres and password postgres
  • install pre-commit and run pre-commit install before committing
  • run npm run setup to install dependencies and configure your environment

Then you can choose to launch either:

  • npm run ex:dev for Elixir server (frontend will still be available through compiled files)
  • npm run elm:dev for Elm/TypeScript frontend (useful when do develop on front)
  • npm run dev for both with live reload

Now you can visit :

⚠️ to launch the app you will need a few environment variables: GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, MAILGUN_DOMAIN, MAILGUN_API_KEY, STRIPE_API_KEY, STRIPE_WEBHOOK_SIGNING_SECRET.

⚠️ Please see Setup Stripe.

npm command semantics

We have a lot of projects with a lot of commands, here is how they are structured:

  • each project has its own commands (mostly npm but also elixir), the root project has global commands to launch them using a prefix
  • setup is a one time command to install what is required
  • install download dependencies, should be run when new ones are added
  • start launch project in dev mode
  • test allows to run tests
  • format allows to run execute code formatting
  • lint allows to run execute linters
  • build generate compilation output
  • docker same as build but in the docker image (paths are different 😕)
  • update bumps library versions

Prefixes in front of the command in root folder:

  • libs: run the command for every library in libs folder
  • ex: meaning elixir, it targets the backend (mostly running mix commands)
  • fe: meaning frontend, target the frontend project with Elm, TypeScript & Tailwind
  • elm: targets only Elm in the frontend project
  • ts: targets only TypeScript in the frontend project
  • cli: run the command for the cli project
  • desktop: run the command for the desktop project
  • be: meaning browser extension run the command for the browser-extension project

And then "special" commands:

  • elm:book: launch elm-book, the design system for Elm

Development commands

  • npm run elm:book to launch the Elm design system

Setup Stripe

Config

  • Install Stripe CLI and login with stripe login
  • Run stripe listen --forward-to localhost:4000/webhook/stripe
  • Copy your webhook signing secret to your .env, it's look like (whsec_XXX)
  • Go to your Stripe dashboard to obtain your API Key and copy it into STRIPE_API_KEY in your .env file.

Payments

When testing interactively, use a card number, such as 4242 4242 4242 4242. Enter the card number in the Dashboard or in any payment form. Use a valid future date, such as 12/34. Use any three-digit CVC like 123 (four digits for American Express cards). Use any value you like for other form fields.

See more in the stripe testing documentation

Stack

License

The tool is available as open source under the terms of the MIT License.

About

Next-Gen ERD: Design, Explore, Document and Analyze your database

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Elm 59.5%
  • Elixir 18.2%
  • HTML 11.4%
  • TypeScript 10.0%
  • JavaScript 0.5%
  • CSS 0.3%
  • Other 0.1%