Hey, I’m a software developer and I like to work on projects that bring value to users. Every time I start a new project, I focus on the functionality and then I get to the point when I need a control panel to administrate the application.

Blended Admin solves the problem of creating an admin panel in an easy and fast way by combining the benefits of an "out of the box" application and the flexibility of programming.

Blended Admin is a web application that
lets you write JavaScript code that

connects to applications or databases (eg. MySql, MongoDB, RestApi)

does whatever you want (eg. gets a list of products)

displays results (eg. a table with products)

A bit like node.js, but way simpler. With a few lines of code that could even be written on your mobile, you can automate your work and share it with others.

Download Documentation Try it online Source code

How it works

JavaScript in Blended Admin comes with a set of custom classes that let you write code in an easy way.

Let's take a look at the following example. The code gets the list of employees from the databse and displays them in the table.

function main(arg)
  {
      var sqlClient = new  SqlClient({provider:'Sqlite',connectionString:'Data Source=chinook.db;'});
      var employees = sqlClient.query('select * from employees');
      var tableView = new TableView(employees);
      return [tableView];
  }
  main(arg);

The results are displyed in the following way.

Table

Similar code can be written to connect with SqlServer, MySql, MongoDB, ElasticSearch or any other datbase or API.

How it looks

Quite simple.
Firstly, you get the view to write and test the code.
Create Item
Secondly, you have the view to run it anytime you need.
Run item
Everything in a web browser, so you can access it as long as you have internet.

Multi-environments support

Usually, an application has development, UAT and production servers. Blended Admin lets you configure environments and variables, so you can execute the same code on different environments.

In the following example, dbConnectionString variable has been defined with different values for each environment. The environment can be changed by selecting from the drop down menu.

Environments

More examples

Sql example: The code allows you to filter employees by first name.

function main(request)
  {
    var formView = new FormView({
      method:'get',
      controls: [[{name:'firstName', label:'First name', value:request.queryString.firstName},null]]
    });
  
    var sqlClient = new  SqlClient({provider:'Sqlite',connectionString:'Data Source=chinook.db;'});
    var employees = sqlClient.query(
      'select * from employees where firstName like @firstName',
      {firstName:request.queryString.firstName}
    );
    var tableView = new TableView(employees);
  
  return [formView,tableView];
}
main(arg);
Table

MongoDB example: The code filters and displays items from the collection.

function main(arg)
  {
     var mongoClient = new MongoClient('mongodb://user:pass@server/database');
     var items = mongoClient
       .bios
       .find({'name.first': 'John'}, { _id:0, name: 1, birth: 1})
       .toArray();

     var tableView = new TableView(items);
     return tableView;
  }
  main(arg);
Table

ElasticSearch example: The code displays all the items from the posts' index.

function main(arg)
  {
     var httpClient = new HttpClient();
     var matchAllItems = httpClient.post({
       url:'http://user:pass@server/posts/_search',
       headers: {'Content-Type':'application/json'},
       body: {'query': {'match_all': { }}}
     });
     var matchAllItemsBody = JSON.parse(matchAllItems.body);
     var matchAllItemsHits = matchAllItemsBody.hits.hits.map(function(a) {return a['_source'];});
   
     var tableView = new TableView(matchAllItemsHits); 
     return [tableView];
  }
  main(arg);
Table