• icon-business-top


    FlexiDB is an extremely fast way to create a database and deploy it to a website or app, complete with user subscriptions and roles. You don’t need to be a developer to use FlexiDB, but if you are you can extend its functionality by creating tasks and plugins.


    The ER tool enables developers to build a data schema in real time as they design it. The ER tool is visual, entities and relationships are created at the database level as they are drawn on the screen. In FlexiDB terminology an object type maps directly to a data table, and a link type maps to a link table. FlexiDB has a REST API. The API uses the link table to work out which object types can be linked. As well as the ER tool we have tools for building forms (for adding or editing) objects, and building queries. The query tool is quick to use while still being rich in functionality. For example it is possible to create join queries or aggregate functions. FlexiDB also has user roles and subscriptions. All users have to register an account at FlexiLogin.com. A database is published on FlexiLogin as a data channel. End users can then subscribe to database channels. The admin for a FlexiDB server can create user roles, and manage subscriptions. They remain in total control. The use of features like the ER tool, user roles and subscriptions means that developers can create a working database in minutes rather than hours.


    The REST API can be called by any programming language, to speed things up we have created libraries for PHP, JavaScript and C#. However, the quickest way to create a UI is to use WordPress. The FlexiDB WordPress plugin is very simple to use. You simply need to use the connect page to configure the WordPress site to connect to your FlexiDB server. After that there is a drag and drop palette that allows users to drag database widgets directly on to the WordPress page. WordPress is used for 24% of all websites. This is a staggeringly high percentage for an open source CMS. It also means that FlexiDB can be used with almost 1 in 4 websites in the world.


    Users now access to Internet more often from their mobile devices than traditional computers. Apps are only going to become more important. FlexiDB has an app editor that produces PhoneGap code. The editor works in a similar way to a traditional CMS, except that it is focused on database functionality. A FlexiDB app has pages onto which can be dragged database widgets. Examples include query table, form, image slider, Google maps, iBeacons detector and QR code reader. The app editor also has a theme editor, making it easy to change the color scheme and background graphics. Once an app has been created there are 2 choices. The first is to download the app as PhoneGap zip file, which can be uploaded to http://build.phonegap.com. This would then need to be submitted to the various app stores for distribution purposes. Alternatively there is the FlexiLogin app. All FlexiDB apps share the same code, they are simply configured differently depending on the end database. FlexiDB apps can be uploaded to FlexiLogin.com, and then read from the FlexiLogin app. As a design pattern this is exactly the same as an eReader app. The only difference is that instead of reading books the app reads data.

    This is a new feature that will be available at the end of 2015. While WordPress has an impressive 24% market share of all websites, there is still a majority of developers who build sites from scratch. We already have libraries for PHP, JavaScript and C#. However we are currently working on widgets for the Polymer project. This will enable web developers who don’t use a CMS to quickly add database functionality without having to create their own framework.

    FlexiDB admin can create user roles. A user role can be given a name, such as admin, manager or clerk. Each role specifies the access rights: e.g. create, read, edit or delete which are on a per object type basis. So for example a clerk might be able to read certain types of object, but only a manager can edit or delete them. When users subscribe to a FlexiDB database the FlexiDB admin can select which user role they have. FlexiDB databases also have Data Sets. These are logical IDs, which enable a database to be partitioned. As an example consider a restaurants database. Each restaurant has its own data set ID. User roles can be assigned on a per data set basis. This means an individual user could be admin for one restaurant, but only a customer for another.
  • Finite State Machine

    FlexiDB has a simple Finite State Machine. FlexiDB has many field types, one of which is ENUM (essentially a pick list). ENUMs can be used to represent states. As an example consider an expenses database. An ENUM field might be called expense_status, which has values: new, approved, declined, paid. In this example, the FSM would maps how states can be changed. So “new” can change to “declined” or “approved”, but cannot change to “paid”. Similarly, only expenses in the state “approved” can be changed to “paid”. Moreover it is possible to link a state transition to user role and also to values of other fields in the same data object. So it’s possible to say that only a user with the role “Manager” can approve a “new” expense_item, and only if expense_item.value < $500.
  • ninja-green