Kiss Web Application Framework




The Kiss Web Application Framework is a framework or development environment used by application developers to develop browser applications. The Kiss framework differs from the many other development tools in the following ways:
  1. Kiss supports an entire application, meaning both the front-end and the back-end.
  2. Kiss is oriented towards business applications rather than public informational sites or consumer portals.
  3. Kiss emphasizes the KISS (Keep It Simple...) approach. To that end, learning and using Kiss is far simpler than other environments.
Kiss offers the following advanced features:
  1. Kiss is open source, can be freely used commercially, and can be downloaded at https://github.com/kiss-web/Kiss
  2. The front-end and back-end communicate over stateless REST services.
  3. The back-end is architected with micro-services. This means back-end services can be added, changed, or deleted on a running system!
  4. Browser cache control - maximize the value of browser cache while being able to change code. The user never has to clear their cache!
  5. HTML components - create your own HTML tags that encapsulate any amount of code into a simple HTML tag that can be re-used anywhere.
  6. Back-end code can be written in Groovy, Java, or Lisp. Other languages will follow.
  7. Adding a web service amounts to dropping a single, simple file in place. No wiring or configuration. Web services are just a few lines of code.
  8. Front-end code is written in HTML, CSS, and JavaScript. No complex build process.
  9. User authentication is built-in.
  10. Powerful SQL access library supporting PostgreSQL, Microsoft SQL Server, Oracle, MySQL, and SQLite
  11. Applications can be served with Linux, BSD, or Microsoft servers.

Sample Back-end Web Service

For example, the following file is located in the my/web/service directory.
class MyWebMethod {
    static void main(JSONObject injson, JSONObject outjson) {
        int num1 = injson.getInt("num1");
        int num2 = injson.getInt("num2");
        outjson.put("result", num1 + num2);
    }
}

Sample Front-end Use Of Web Service

The following front-end example utilizes the web service defined above.

var data = {
    num1: 22,
    num2: 11
};
Server.call("my/web/service", "MyWebMethod", data).then(function (res) {
    if (res._Success) {
        var result = res.result;
        //...
    }
});
Full authentication and error handling occurs automatically. (The user must have logged in first.)

HTML Component Usage

Developers may use any of the supplied tags or may define your own. Custom tags may encapsulate any amount of HTML, CSS, and JavaScript code and may be re-used in any number of places.

To use a component add to HTML:   <my-component></my-component>

And add to JavaScript: utils.useComponent('MyComponent');

Kiss also supports tag-less components that can encapsulate arbitrary functionality including pop-up windows.

Database API

Kiss comes with a powerful library for accessing SQL databases. This API provides the following benefits:

Single Page Application

Kiss applications are single page applications in the sense that there is a single <body> tag and all other pages essentially get placed into that tag on a single page. However, Kiss is not a single page application in the sense that the entire application gets loaded with a single GET request. This doesn't make sense for a large business application in which many hundreds of pages may exist. Kiss lazy-loads pages as they are used, and except for browser cache, eliminates them once another page is loaded.

Connect

Source code is at https://github.com/kiss-web/Kiss

Public discussion and support is available at https://groups.google.com/forum/#!forum/kissweb

Issue tracking is at https://github.com/kiss-web/Kiss/issues

Commercial support is available. Contact us via email at kissweb.org@gmail.com