Code Monkey home page Code Monkey logo

general's Introduction

General Insignia

General

General is a framework that integrates mature open source libraries to deliver modern web applications with astounding effectiveness.

General solves the repetitive problem of building CRUD interfaces on top of a rich data model.

General revolves around PostgreSQL, the most powerful and mature relational database.

General is a set of API endpoints that provide configuration parameters to a front end application.

Configuration parameters are stored in normalized database tables.

Configuration parameters can be applied to users or groups.

Currently, configuration parameters encompass the following front end components:

  • Menubar
  • Tables
  • Forms

Additional components will be supported as General evolves.

Examples of configuration parameters include:

  • Which tables or forms appear in the menubar and its submenus
  • What icon is associated with each table or form
  • Custom names for tables and forms
  • Which columns or fields are visible/editable
  • Which columns the user can filter on

The stack

SQLAlchemy

The models for General are developed as Python classes with the SQLAlchemy ORM. SQLAlchemy is a highly flexible and mature ORM.

Your application models can use any ORM in any language, as long as it's compatible with PostgreSQL. You can also just use raw SQL scripts to develop your data model.

Alembic

Migrations for General are performed with Alembic as it is built for SQLAlchemy and performs as advertised.

For changes to your application schema you can use your ORM's migration manager or an independent one like Flyway.

PostgreSQL

PostgreSQL is the most reliable and feature-rich relational database.

Both General's tables/functions as well as your application's are automatically detected using the PostgreSQL's system catalogs. This avoids the issue of repeating yourself, the data model is hard-coded only in one place: your ORM or SQL scripts.

PostgREST

PostgREST is the service layer of General. It automatically generates the REST endpoints based on the tables, views, and functions defined inside the API schema(s). All of the relevant HTTP verbs are implemented and a Swagger/OpenAPI specification is automatically generated as well. This avoids the issue of repeating yourself, the data model is hard-coded only in one place: your ORM or SQL scripts. (seeing a pattern?)

Nginx

It is recommended that you place nginx in front of PostgREST configured as a reverse proxy.

general's People

Contributors

pierrerochard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  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.