Coder Social home page Coder Social logo

fxrazor / azimutt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from azimuttapp/azimutt

0.0 0.0 0.0 39.13 MB

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

Home Page: https://azimutt.app

License: MIT License

Shell 0.01% JavaScript 0.53% Elixir 17.43% TypeScript 12.13% CSS 0.26% Elm 58.20% HTML 11.32% Batchfile 0.01% Dockerfile 0.12%

azimutt's Introduction

Azimutt logo

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

azimutt.app โ€ข roadmap โ€ข @azimuttapp

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

Azimutt is a full-stack database exploration tool, from modern ERD made for real world databases (big & messy), to fast data navigation, but also documentation everywhere and whole database analysis.

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 focused on data governance and lineage for data teams, miss relational db for developers

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 schema using search everywhere, display only useful tables/columns and follow relations
  • Query your data like never before, follow foreign keys and display entities in diagram
  • Document using table/column notes and tags and layouts and memos for use cases, features or team scopes
  • Analyze it to discover inconsistencies and best practices to apply

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

Self hosted

You can use our Docker image to easily deploy it. Here is the full guide.

Local development

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

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

  • install npm, Elm & elm-spa
  • install Phoenix and Elixir if needed (use asdf)
  • install PostgreSQL, create a user postgres with password postgres and a database azimutt_dev (see DATABASE_URL in .env later)
  • install pre-commit and run pre-commit install before committing
  • copy .env.example to .env and adapt values
  • source your environment and install dependencies: source .env && npm run setup
  • you can now start the Azimutt server: source .env && npm start
  • and finally navigate to localhost:4000 ๐ŸŽ‰
  • you can login with [email protected] email & admin password

Other things:

  • API documentation is accessible at /api/v1/swagger
  • You can use npm run elm:book to start Elm design system & components, and access it with localhost:4002

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.

azimutt's People

Contributors

loicknuchel avatar sbouaked avatar antse avatar alxckn avatar dependabot[bot] avatar ad-si avatar dev-danilosilva avatar supermario avatar quentinlegay avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.