The KISS Web Development Framework

Perhaps the most popular application platform is the web. There are many reasons for this including portability between platforms, lack of program update, backing up data, sharing data with others, and many more. This popularity has led many of us to the platform.

Unfortunately, the platform is a bit complex. Rather than developing in a particular environment, with web applications, it is necessary to create two halves of a program using very different technologies. On top of that, there are many additional challenges such as communications and security between the two halves.

A typical web application would include all of the following building blocks:

  1. Front page layout (HTML / CSS)
  2. Front-end functionality (JavaScript)
  3. Main server code (Java, C #, etc.)
  4. Communications (REST, etc.)
  5. Authentication
  6. Data persistence (SQL, etc.)

All of these do not even affect all the other elements that are not part of your application itself, such as the server (Apache, tomcat, etc.), the database server (PostgreSQL, MySQL, MongoDB, etc. .), operating system (Linux, etc.), domain name, DNS, yadda, yadda, yadda.

Despite the enormous complexity, most app developers are primarily concerned with the six things listed above. These are their main concerns.

While there are many fine-grained solutions available for these primary concerns, in general, these solutions are siled, complex, and incongruous. Let me explain.

Many solutions are siled because they are single solution packages that are complete in themselves and disconnected from other parts of the system.

Some solutions are so complex that they can take years to fully learn. Developers may have more difficulty with the framework they are using than the language or application they are trying to write. This is a major problem.

Finally, by incongruous, I mean that tools in silos do not fit together naturally. A bunch of glue code needs to be written, learned, and supported to put the different parts together. Each tool has a different feel, a different approach, a different way of thinking.

Being frustrated with all these issues, I wrote the KISS web development framework. At first it was just various solutions that I had developed. But later it evolved into a single, comprehensive web development framework. KISS, an open source project, has been specially designed to address these specific challenges.

KISS is a unique, comprehensive and fully integrated web development framework that includes integrated solutions for:

Front end

  1. Custom HTML controls
  2. Easy communications with the back-end with integrated authentication
  3. Browser cache control (so the user never has to clear their cache)
  4. A variety of general purpose utilities

Back-end

  1. Easy communications with the back-end with integrated authentication
  2. Easy-to-use SQL data persistence API
  3. REST services are microservices grouped into threads, asynchronous
  4. PDF report generation, CSV import / export and a variety of other general purpose utilities

The goal of KISS (its namesake) is to keep things simple.

KISS is easy to learn, easy to use, and easy to support. I should add that there are a few commercial apps written with KISS, so KISS is combat tested and ready for real applications.

The KISS back-end is mostly built in Java. The front end is directly HTML, CSS and JavaScript. Keep it simple!

KISS is a full featured and running application with abundant documentation. After downloading the source code to your Linux, Mac, or Windows machine, KISS can be up and running in no more than four command lines. These four lines will install all third party libraries and a web server will be installed and configured. Since KISS is built with microservices as well as other techniques, the back-end and front-end of your application can be changed while the system is running. You do not need to stop the server, create, deploy, and restart the server.

KISS has the following prerequisites:

  1. JDK (Java Developer Kit) 8 or 11
  2. GIT

Here are all the commands needed to download, configure, build and run the initial KISS application on a Linux or Mac (it is assumed that you have already installed the JDK):

$ git clone https://github.com/blakemcbride/Kiss.git

$ cd Kiss

$ ./bld develop

Under Windows, it would be:

> git clone https://github.com/blakemcbride/Kiss.git

> cd Kiss

> build-builder

> bld develop

This process is as follows:

At this point, the initial KISS app will be created and run. You can go to http: // localhost: 8000 with your browser to view the app. It looks like this:

KISS browser local host

The initial username is “kiss” and the initial password is “password”. KISS out of the box supports PostgreSQL, MySQL, Microsoft SQL Server, SQLite and Oracle. Upon delivery, KISS is configured for and includes an SQLite database. It uses it to authenticate the default user.

Once connected, the system will look like this:

KISS login screen

The buttons on the left illustrate various capabilities of the system.

Controls – demonstrates various custom HTML tags

REST services – demonstrate REST calls

CRUD – shows an example of a create, read, update and delete screen, as well as report creation and export

Download files – demonstrates file upload capabilities

Sign out – log out of the system

Once KISS is running, you can debug the app with your preferred IDE by connecting to debug port 9000.

One thing to note, KISS is not inextricably linked to the KISS front-end. KISS can and has been used with other front-end frameworks like React, Angular, etc. It’s easy.

Again, due to the design of KISS, you can add and modify front-end or back-end code while it is running and the changes will take effect as soon as they are executed. Note that all the code is completely compiled. There is no interpreted code. Everything is running at full speed.

In addition to the documentation that comes with KISS, there is also a video training series on YouTube. Future articles will delve into the design decisions and use of the system.

Connect

Main site – https://kissweb.org

KISS Source code – https://github.com/blakemcbride/Kiss

Discussion – https://groups.google.com/forum/#!forum/kissweb

Follow up on issues – https://github.com/blakemcbride/Kiss/issues

James S. Joseph