This post will show you how to create an application and take a complete control of the application infrastructure and architecture while using Baasic dashboard features. Let me guide you through its most important features.

Registration

First thing first: to integrate your applications with Baasic you need to be registered. To register, use the registration form and fill out the fields marked as required and select the [Create account] option. The system uses Captcha to maximize the level of security when dealing with classified information, so make sure you provide a valid captcha code before submitting the form:

The Account Registration Form

If all fields have been filled out correctly, Baasic will walk you through a series of steps:

  1. The Success Registration dialog which indicates that registration process has completed successfully. At this point, Baasic has sent the activation link to your email address.
  2. Next, select the activation link to proceed with verification.
  3. Once the link is accessed your Baasic account should be created and activated.
  4. Finally, the Account Created dialog is shown, allowing you to navigate directly to the Login screen.

Now you can access the Account Dashboard screen which shows a list of applications that have been created. You haven’t created any applications yet, so the list is empty:

The Account Dashboard Screen

Forgot your password?

Don’t worry, if you can’t remember your password simply use Baasic’s built in password recovery mechanism that utilizes email address or username information allowing you to disable your old password and request a new one:

The Password Recovery Form

Note that in the normal circumstances your password can be updated through the Dashboard interface.

Account activation didn’t complete?

On rare occasions the registration process may refuse account activation for various reasons. In case this scenario ever happens to you, go to the Activation screen, fill in the form and request account activation by clicking on the [Resend] option:

The Account Activation Form

This should resend the activation link to your email address. If something goes wrong, the system will show an error message and an advice on what can be done in order to fix the problem.

Sign in

The Login page provides a security mechanism that prevents unauthorized users from accessing the system. So, in order to get past the Login page and access the main back-end functionality, you must provide your account information:

The Login Form

If the login combination is successfully verified, you’ll be signed in immediately.

How to sign out?

Your access to the system can be closed off as a result of your choice or due to the session expiration rules:

  1. Using the [Logout] option

You can simply sign out by selecting the [Log out] link button under the User Account secondary menu. Once the [Logout] option is selected you are signed out and the Login screen is displayed.

The Logout option

  1. Session timeout log out

Baasic implements an inactivity timeout for active sessions, which means that user sessions are closed and invalidated upon defined period of idle time. In other words, in case of a session timeout, you’ll be signed out from the system and prompted to reenter your password information or to login using another login. This functionality lowers the risk of identity theft.

The Session Expired Screen

System functionality

Below you’ll find more details on the essential functionality you’ll need to know once you’ve registered.

Once you have access to Baasic, some of the things you’ll be able to do are:

  • create and manage applications,
  • set up your payment model,
  • update account details,
  • bookmark your favorite Baasic shortcuts and many more.

The navigation sidebar displayed below allows you to access all Baasic features:

The Menu

As you can see, sidebar menu offers six primary options, and instead of requiring multiple separate screens to preview the content, Baasic uses secondary menu to allow easier toggling between menu options. This allows a seamless transition between menu options, making the menu very intuitive for the end-user.

Primary menu consists of the following items: 1. User Account - offers some account-related access links and frequently used options like [Logout] and [Reload Account Settings], 2. Home - ensures quick access to the Account or Application Dashboard screen, 3. Modules - gives access to the most important dashboard tools (Account Management options or Application features), 4. Favorites - holds your Baasic bookmarks making your favorite screens readily accessible, 5. Support - provides information on all Baasic features and list of available options in case you want to contact Baasic’s Support team and 6. Dashboard - ensures quick access to the Account Dashboard screen.

Account Dashboard

The main purpose of the Account Dashboard is to provide a place where you can easily create and use applications, manage your account data and payment options. To navigate to the Account Dashboard section you must use the account owner’s credentials.

Account Management

Account Management functionality includes two main sections:

  • Account Info - allows you to preview relevant account information and
  • Payment - allows you to preview and configure your payment options. This section is not used during the beta phase.

Both utilities can be reached through the Account Dashboard, by following an option located in the left menu under the Modules menu option:

Account Management Options

Creating an application

The application creation mechanism provides a form that allows account owners to register a new application in Baasic. To successfully register an application, access the form by pressing the [+ Add a new app] button and fill out all fields. Once done, just hit the [Create application] button:

The Create Application Form

Now you should see your new application on the Account Dashboard page. Click on the title of your new application to access it. Note that this action will lead you directly to the Application Dashboard screen.

The next section is geared towards helping you recognize and understand available Baasic’s features that may be used in your application. To manage structure of the application you have just created, please refer to any of the application features listed below:

Application Dashboard

Application Dashboard allows you to easily access and perform all actions related to the application structure and functionality. You can efficiently model application data using the standard operations:

  • Saving - persists new resource in the Baasic data storage,
  • Updating - used for editing an existing resource,
  • Deleting - used to completely remove an existing resource from the Baasic data storage,
  • Retrieving - arranging resource collections by using advanced data options (search, sorting or paging) and
  • ACL Management - allows defining end-point and object access permissions.

The following sections exemplify the basic principles and tools that are needed to develop fully customized application solutions.

Key Value Management

In case you are in need of a schema-less, efficient, scalable and extremely performant structure, the Key Value model is the way to go. It works by matching keys with their values allowing you to quickly store anything you need:

  • The key - a unique identifier for the data item and
  • Value - a data that is being identified.

Since there is no structure and relations, this model is commonly used for configuration files, lookup tables and hash tables. For example, to support the file download functionality in your application you may need a key named installation_path which can keep track of the directory used for download:

The Key Value Form

Value Set Management

Unlike the key value model, you can use value set structure when specifying the list of data used as advanced table configuration in your applications. This way, you can establish and manage almost any kind of value sets that are identified by their names. Please note that the value set storage stores each unique value set only once. In other words, the data is always normalized at the level of unique values, so you don’t have to normalize data sets in the logical schema.

For example, to enable storing specific data types, you may want to specify a unique identifier for the value set (e.g. data_types) and reference data types through value set elements in order to verify the data itself:

The Value Set Form

Article Management

Need a user-friendly, effective text publishing solution? Take a look at Baasic’s articles module as it might work for you. It provides a standard way to gather written work for the purpose of publishing various documents, news, posts and other similar items. Each article has a set of properties that can be edited interactively to change their appearance and behavior. We can distinguish between following article types:

  1. Published article - an article available to application users,
  2. Article pending publication - an article that is waiting on publication until the predetermined publication date,
  3. Draft article - an unfinished article saved to the Baasic data storage and
  4. Archived article - an older article separated in the archived data storage for potential future use.

Articles module uses the article dashboard, which presents the current status and historical trends of application’s article performance:

Article List

Dynamic Resource Management

This feature enables you to generate dynamic resource schema for a JSON object - either using the Basic GUI, programatically using the API, or by parsing an existing object. It also allows you to create and manage dynamic resources whenever you need them. In addition to that, Baasic includes an authorization utility that provides role and user based access control for all established dynamic resource schemas.

Dynamic JSON Schema is a standard (currently draft) generated according to the JSON Schema Draft v4 specifications. As its name would suggest, it is a changeable JSON based data structure which can be arbitrarily arranged to meet your inferred data type needs. In other words, this schema allows you to predefine a basic structure for JSON object definitions achieving greater data reusability, flexibility and less maintenance.

Properties within the schema have to be defined and associated with another object containing their expected type. For example:

Dynamic Resource Schema Example

As you can see, dynamic resource schema makes it very easy to start with the resource configuration, letting you to use its basic structure when defining resource architecture. Using the predefined dynamic resource schema, various dynamic resources can be established and validated against the specified schema. If you want to have additional resource properties, you can extend the predefined schema-based structure by including new properties in the resource. This dynamic resource functionality enables you to represent a variety of resource types based on the same schema structure. The following JSON fragment describes an instance of a simple dynamic resource structured according to the schema above:

Dynamic Resource Example

Dynamic resource definitions can also be extended by specifying new properties and their values on the fly:

Extended Dynamic Resource Example

The power of dynamic resources is in their flexibility - you can fit anything inside a dynamic custom object and than use it as first-class citizen in your application. We will publish a couple of followup posts to describe some of the real world scenarios in which this functionality is used.

User Management

You will almost certainly want to set up group of users that have access to your application. For this purpose, Baasic offers simple user management system that includes:

  • Support for user registration,
  • Password recovery mechanism,
  • Fully featured role management and
  • User account activation and verification.

At first, you’ll be the only user registered in the application, but you can create as many users as you like and manage their access rights afterwards:

Create User Form

Role Management

Want to manage access rules for groups of application users? No problem - Baasic provides a role management system that enables you to establish a set of different roles and assign them to individual users. You can later simply add or remove a role from the associated user rather than updating access rights manually.

For example, if an application has articles module, some users might be in the roles of both user and author so in that case the following set of roles may be helpful:

Roles List

Authorization Management

As roles and responsibilities change, you might need to adjust or establish a different set of access rights for individual users or roles. Essentially, when it comes to permissions, Baasic takes module-based approach which means that you can set up a permission model, i.e. end-point Access Control List (ACL), for each module separately using the permissions screen:

Permissions Screen

For instance, the figure above indicates that users assigned to the Administrators role have no limitations when managing Value Set module, while users assigned to the Users role have only READ privileges.

Besides this standard permission model you can also take advantage of object-level ACLs which serve as a lightweight permission extension. Object-level ACLs support fine-grained access control over certain objects allowing you to setup preferred permission model per single object. To manage object-level ACL just access the permissions screen for the record of interest:

Access ACL Permissions screen

Next, define the access permissions for the object:

The ACL Permissions screen

Once done, just hit the [Save] option to save the changes.

Keep in mind that object-level ACLs can be managed only by users assigned to the FULL privilege.

On the permissions screen you can:

  • arrange roles and users by their access rights, usernames, email or role parameter and
  • assign or revoke access rights.

It is important to notice that all permission models can be modified on the fly, any time you feel like enforcing any structural changes. To provide a better understanding of the authorization structure, this topic will be discussed in more detail in our future blog posts.

Application Settings

On the application settings page you can set up various configuration details for your application. The choices you make here will change the behavior of the application on a global scale, so this module is accessible only to users assigned to the Account Owner role.

Here is the list of available application settings:

  • Core - allows configuring general application settings,
  • Mailing - used for management of the mail-related application settings,
  • Application Origin - configures origin-related application settings and
  • Application Deletion - allows permanent application removal.

A preview of the application settings interface is shown below. Note that all changes are applied instantly after the [Save] button is clicked.

Application Settings Screen

Please free to contact us with your questions or comments. Enjoy!

Feel free to leave a comment

comments powered by Disqus