Creating a CRUD web app in a couple of minutes

About a week ago I released a new version of Phosphorus Five. One thing I have been working a lot with for this release, is Camphora Five, which is a “Code Builder”, that allows you to “generate” CRUD apps, by simply declaring what types of fields you want. One thing that sets this CRUD app generator apart from most other CRUD app generators,  is the ability to create alternative “views”, to display among other things statistical charts on your data.

Now combining the CRUD app generator with the other tools in Phosphorus Five, such as Hyper IDE, which is a fully fledged web based IDE – Allows me to do some pretty amazing things with my app. Basically, I can create a rich and highly complex web app, with statistical charts, import data from for instance Excel or any other system that supports CSV files, and deploy my web app into production – All of this in a couple of minutes. I have created a YouTube video series where I demonstrate creating a simple “sales app”, where I do this, from initial idea, to deploying the web app into production – And the entire length of the series is less than 10 minutes.

Some of the things I still haven’t created support for though, is “linked tables”, and the ability to perform joins on tables. The latter you can probably fix yourself by for instance creating a view in your MySQL database. The former requires having to do some coding in Hyperlambda, to modify the datagrid that is automatically generated. However, in future releases, I will try to implement support also for “linked tables” (foreign keys).

However, if all you need is a simple CRUD app, wrapping a single table, with some statistical views on your data – You can do this in the latest release of Phosphorus Five.


Watch my computer create software

In these AI days, it was just a matter of time before the computer starts doing the job of the software developer. Computers are already thousands of times better than us to play chess for instance. Chess is a problem of “perfect information”, so is creating software.

In chess the objective of the game is to check mate the opponent. Describing this objective to a computer is easy – And once you have accurately described your objective to a computer, its intelligence can always outperform humans in all cognitive tasks, as long as it is a task with “perfect information”. Implying if you can accurately describe your objective as a software developer, a computer can outperform any software developer easily, and implement your software much faster, much more accurate, and literally completely bug free. Describing the objective for a software system is actually not that much more complex than describing the objective in chess. It’s really just a task of having a formal way to communicate specifications.

I have created a software system that creates software systems. I refer to it under the name of Camphora Five, and it’s one of the modules in Phosphorus Five. It allows you to declare your data, for then to have the computer create your code. You can see an example of usage in the video below.

An acquaintance of mine, which is a really skilled developer for the record, once bragged about how he had created something resembling the above system in 12 hours. 12 hours to implement the above is quite impressive for a human being. A qualified guess would be that most developers would need weeks to implement something similar. However, my software system does it in 2 seconds, after I have created the specification – And it takes me 2 minutes to create the specification for it! The result becomes functioning code, 100x more responsive, with a fraction of the bugs a human being would create.

The above example of course is only the beginning. Currently my system can only create simple CRUD web apps, with one database table, and some charts to display statistics on your data. However, all problems that can be accurately and formally described, can be accurately implemented by a computer – In a couple of seconds! Implying the future for software developers is destined to change, and I intend to prove it, by creating hooks for all the most common specification types that exist, for then to let my computer implement these types of systems automatically. It’s simply the destiny of Hyperlambda.

Camphora Five even creates rudimentary documentation, an API, extension hooks, “UserControls” (widgets as I refer to these as), and everything you’d normally only expect a human being to be capable of creating. And it creates 2000 lines of code, in 2 seconds, without producing as much as a single bug in the process!

For a decade I have tried to make software development so easy that “grandma could create software”. Not realising that in the process, as I were about to succeed in my goal, this task also became so easy, that even a computer could do it. Leaving the software developer with only simple customisation tasks to apply after the system has been generated – Effectively eliminating 98% of a developer’s workload.

It looks like software developers are to finally get some work/life balance … 😉

Download Phosphorus Five and try it out for yourself here (It’s Open Saucer)

If you’re interested in helping me in this process, feel free to submit a ticket suggesting a formal specification type for me here

Put your Excel files on the web in 36 seconds

Below I am creating a rich web app in 36 seconds. Notice, the video is almost 3 minutes long, but the app is actually finished, and deployed, in production, 36 seconds after I start creating it.

There are millions of uses for such apps as the above illustrate. For instance …

  • Rental systems (libraries, DVDs, etc)
  • Inventory tracking
  • Address books
  • TODO lists
  • Basically, anything you would use Excel for

After you have created the app, you can import a CSV file from e.g. Excel and/or Numbers (Mac OS), and you will instantly have web access to your data from your iPhone, Android, laptop, etc, etc, etc. Basically everything you normally use Excel for, can be ported to become a web app, such as the above illustrates. And you’ll have access to it, from anywhere in the world.

Notice, if you want to import your data from Excel, you’ll need to make sure you’re exporting your CSV file according to the RFC CSV standard. This implies using commas (,) to separate items, and double quotes (“) to wrap items having carriage returns within them, and/or (“) within their values. These are just simple settings though, which you must make sure you apply, as you export your Excel file to a CSV file.

Also notice, this is a data app, and does not have all the features of Excel, such as graphs, formulas, etc. Only “data” Excel files can be exported like the above illustrates.

AngularJS 1411 LOC, Camphora Five ZERO lines

If I told you to travel around the world, and I told you that you could use any means of transportation you wanted to use, but that the objective was to go around the world as fast as you possibly could. Would you want to use a donkey or a jet plane? What if I told you that I’d give you money according to how fast you were able to finish your trip, would you still use the donkey?

AngularJS is the donkey, and Camphora Five is the jet plane. I just found a tutorial on how to create a CRUD datagrid with AngularJS at CodeProject. The guy who wrote it is obviously a skilled programmer, still his end result looks like the screenshot below.

I downloaded his source code, and I found there to be 1411 lines of code in his tutorial. This implies that you’d probably spend several days creating something similar yourself. In Camphora Five you can create something similar in 5 seconds, and the result will look like the following.

Which of these two screenshots do you think features the most beautiful design?

If I told you that I’d give you $100 to create a grid CRUD app for me, would you want to spend 5 days creating it, or would you want to spend 5 seconds creating it? Almost every single tutorial on “how to create a CRUD grid”, regardless of what framework you’re using, can easily be created in Camphora Five in 5-10 seconds.

Which of these do you think is the better tool?

Creating an Address book web app in 36 seconds

When I headhunted Eirik Chambe-Eng to sit on my board in GaiaWare, he told me a thing that has stuck with me ever since; “We (Trolltech) had success because we ported one of Microsoft’s MFC apps to Qt, and demonstrated how much more work had to be done in order to create the equivalent in MFC compared to when using Qt”.

I am therefor going to take Eirik’s advice, and do the same comparison between Qt and Phosphorus Five. Hence, I have ported Qt’s Address Book app to Phosphorus Five, and I did it live, in 36 seconds, in a YouTube video, which you can see below. You can find the code for Qt’s address book here. I am going to compare these two very different end results, on some neutral metrics, such that you can see for yourself, and make up your own mind about the differences. Let’s start with the Qt example first though. Qt’s address book app contains the following traits.

  • 5 C++ classes, MainWindow, AddressWidget, TableModel, NewAddressTab and AddDialog
  • You’ll need to create 418 lines of code to reproduce their example (not counting comments and spacing)
  • It doesn’t work on the web, and hence is probably impossible to run on an iPhone, Android, iPad, etc – However, it probably creates portable code, if you’re willing to run its code through a bunch of different compilers, which is probably highly time consuming for the record
  • Graphics are probably in “the eyes of the beholder”, but I still think we can all agree upon that Qt’s Address Book example (*coff, coff*) … zuckz … check out the image at the top of this article, and tell me you disagree with my “objective analysis” here …
  • The code has to be created in C++, which basically makes it “Greek” for 99.9% of the population in this world.

In the video below I create the equivalent app in Phosphorus Five with Camphora Five, and I do it in 36 seconds, without writing as much as a single line of code!

I’d love to show you a graph of how these two different solutions would look like in regards to KLOC Eirik, but unfortunately that would result in a “division by zero”, and hence is mathematically impossible … 😉

If you want to try my little Address Book app, feel free to do that here.

Epilogue; Some might claim that my comparison is not valid, since I am using a code generator in my video. I disagree with that argument, because software development is the “art of solving problems with computers”. I definitely solved the same problem as Qt’s address book example. The Phosphorus Five solution also happens to solve the problem much better, with web support, and being far more portable, and able to run your “app” on any device you wish. In addition the P5 solution has orders of magnitudes more availability, and arguably creates a better design and more “beautiful” end result.

The belief that one must “code” in order to create software is a false assumption, having no place in the 21st Century. In fact, if you were using tools such as Camphora Five, you’d free up your time for more important tasks. This is true whether or not you’re a developer, a mere mortal, or John Doe. And the belief in the “not invented here” syndrom, making system developers spend an awful lot of time, doing things they shouldn’t do, is only going to hurt you (the developer) in the end. If you want my advice about this, here it comes …

Ditch the attitude, embrace the (r)evolution, and stay relevant the 21st Century

Because the alternative is the go extinct …

Create your web apps in 5 minutes – Seriously!!

Yesterday I created what will hopefully be the last 4.x release of Phosphorus Five. It’s a BETA release of the upcoming “5th Amendment release”, and it contains one kick ass cool new app; Camphora Five. Camphora Five allows you to literally create your web apps, without ever having created as much as a single line of code, in your entire life.

An example of an app created with Camphora Five. More specifically, a “TODO list” application.

Camphora Five allows you to declare a bunch of columns, for then to use your app declaration to “generate” a new database driven, interactive, CRUD web app. CRUD translates into “Create, Read, Update and Delete”, and just so happens to be 80% of any domain problem, almost regardless of what your domain is – Assuming you’re interested in collecting data.

An alternative to Excel for gathering data

If you have ever used Excel to collect data, you would probably be very pleased with Camphora Five. It basically creates a database for you, using your “app declaration”, allowing you to Create, Read, Update, and Delete your data, from anywhere you are in the world. It works perfectly on iPhone, Android, tablets, and your computer. Hence, with Camphora Five you can create a web app to collect data, and have access to it from anywhere you are in this world.

Arguably, if you’ve solved “CRUD”, you have solved 80% of any problem related to software development. This is because at its core, our computers were built to help us collect data, store data, retrieve data, and then later analyse that data. Camphora Five commoditises all of these problems, except the “analyse” parts. Hence if you can declare what type of data you want to collect, you can arguably create 80% of any apps in the world. And it requires no more than 5 minutes, literally, to create your app. Below is a screenshot of how it looks like as you create your apps.

When creating your app, you’re expected to fill out a handful of different options, and declare your columns, for then to click “generate” – At which point you have a brand new web app, working on any device capable of displaying HTML.

You can also easily export your data to and from Excel or Numbers, using the CSV file format. This allows you to create an app which you use to gather your data, for then to export your data to Excel for doing whatever it is you’re normally doing in Excel – Or Numbers for Mac OS.

There’s a bunch of different types of fields to choose from when you create your app. Single line textbox input, multiline textbox input, checkbox fields, radio button select fields, select dropdown fields, etc. And the type of field you choose, defines which type of form input control is being used to edit and create your data values. Below is a screenshot showing you how you declare your fields, and their associated types.

Declaring your fields as you create your Camphora Five apps.

Camphora has a couple of really kick ass cool features. Obviously there’s a search interface, to filter items, in addition to the ability to sort your items according to any columns you have in your app. However, one features I am particularly proud of is the ability to use #hash-tagging if you create a “Multiline text” type of field. This allows you to hash tag items, for then to later filter according to items containing your hash tag. This feature works roughly the same way that Twitter works like, allowing you to specify only items tagged with a specific hash tag.

In addition, a multiline text field can also handle Markdown. This allows you to supply basic formatting to your items, creating bulleted lists, bold text, etc, as you create and edit your items. The multiline text type of field, also automatically recognises URLs, and turns them into hyperlinks for you. Below is a screenshot of how it will look like as you create a new data item in Camphora, depending upon how you choose to create your app – Obviously!

Creating a new data item in a Camphora Five application.

Camphora Five will also automatically create a “never ending scrolling experience” for your CRUD apps. This feature will automatically “feed” your datagrid with more items, as you scroll to the bottom of your page. Allowing you to easily keep on viewing items from your database, without even having to click a button. Yet again, kind of like the way Twitter works.

Have your cake, eat it, and sell it, all at once

Camphora Five basically allows you to put an Excel file online, allowing multiple people to edit your file, for then to later export it back to Excel if you wish, and handle the data in Excel. You can also create an app where anonymous guests are allowed to view your data. In fact, you can configure your app to allow also anonymous guests edit your data too – Although I am not sure why you would want the latter to be honest with you. This allows you to publicly expose any data you have, to anyone you wish to show this data to. And you can control who gets to see the data and who gets to edit it.

Importing items to your Camphora Five application, is as easy as dragging and dropping an Excel file (CSV format) into your browser.

When you’re done, if you want to apply additional features to your apps, this is quite easily accomplished if you wish. Since the “generator” actually creates a fully fledged Phosphorus Five module for you, which you can later edit as you see fit. This allows you to add additional features to your app, or skin it as you see fit, if you know some basic Hyperlambda or HTML and CSS. If you don’t know Hyperlambda or CSS/HTML, we’re of course available to help you out with this, for a fee.

Create €13,000 in 5 minutes

I once had an acquaintance in Norway (which I will not mention the name of), who bragged about that he had created a simple CRUD app, wrapping an existing database for a customer. He billed his customer €13,000 for this app. He was laughing as he told me the story, because he had “only” spent 12 hours creating this web app. With Camphora Five I could have created that app in literally 5 minutes. And the results would have been far superior, with dozens of additional features.

A Camphora Five app, would have outperformed the app that costed the customer €13,000, and this Camphora Five app would have taken no more than 5 minutes to create

Facts are, I have seen consultants create web apps, hundreds of times in my own career, that could easily be created in 5 minutes with Camphora Five. Sometimes these consultants have charged hundreds of thousands of dollars, and sometimes they weren’t even able to deliver a result, even after years of working on these apps. If these same consultants were using Camphora Five, they could have finished their web app in literally 5 minutes.

Getting started

The easiest way to getting started with Camphora Five is to run my installation script on a Ubuntu web server, for then to install Camphora Five through the “Bazar”. This process is a 3 liner, and requires about 5-10 minutes, assuming you have an existing Ubuntu web server somewhere.

The alternative is to download the source, run it in Visual Studio/Xamarin/MonoDevelop, for then to (yet again) visit the Bazar, and install Camphora Five. If you choose the latter, you’ll have to manually make sure you’ve got MySQL installed, in addition to some GnuPG wrapper, to handle your PGP keys. Camphora Five relies upon MySQL to function, and you might have to manually edit your “web.config” file if you choose this route, to make sure your MySQL password/connection string is accurately configured. GnuPG is also necessary, since the core of Phosphorus Five is heavily relying upon cryptography, when for instance downloading apps in the Bazar etc. I use “GPG Keychain” on my Mac OS, but there exists good GnuPG wrappers for both Windows, Linux and Mac.

The latter route allows you to test out Camphora on your development box, in addition to checking out its source – Which yes, you guessed it, is 100% Free and Open Source Software! So what are you waiting for?

Start creating apps worth literally hundreds of thousands of dollars in literally 5 minutes

Some examples of apps you can create with Camphora Five are given below.

  • Library database
  • Movie database
  • Inventory tracking
  • Customer list
  • Emails (for marketing purposes)

Basically, any app where you want to Create, Read, Update and Delete data items from a database, could be easily created with Camphora Five – Although it doesn’t feature “referential integrity” yet, hence any Camphora Generated app is based upon a single database table at the time being.

Yet still, I don’t think I have a single friend that doesn’t need to create their own Camphora Five app, for some purpose. My sister used to collect old vinyl records. She would have a book, which she used to track more than 3000 records with. If she had used Camphora Five to create her app, she could have thrown her book.

Another example is a friend of Lisbeth, which is an ornithologist. He collects data about birds, using old style pen and paper. When he comes home, he has to manually type in this data into some “bird database”, such that the Norwegian government can keep track of its bird population. Every single day he spends at least one hour doing this manual labour. If he had used Camphora Five, or more specifically his employer had used Camphora Five, he could have spent one hour more out in the woods, every single day, observing birds.

Any landlord having multiple rental apartments needs Camphora Five. I once went to look at an apartment, because I was looking to rent a new place. The guy who owned this complex had 25-50 different apartments. As we were going through the details, he took a piece of paper out of his pocket, looking like it was printed with Excel. If he had used Camphora Five, he could have had that database online, and such easily being able to filter, search, and view the latest updated data, contrary to the old piece of paper he was looking at.

In fact, I need Camphora Five myself. When I am done with the “5th Amendment Release” of P5, I will create a “Howto Hyperlambda” database myself, which I will use to create an app, allowing people to easily search my database of FAQ, to figure out how to solve some specific thing in Hyperlambda.

I don’t think I could mention a single human being on the planet, that would not benefit one way or another, from having Camphora Five, and use it to create some data driven web app. In fact, if you’re an Eskimo, and you’re hunting seals, and you want to keep track of which places the best hunting grounds are, and how many seals you are able to hunt – Guess what; Camphora Five does that!