FTP. MySQL. HTTP. LOCALHOST. The internet is confusing. For all the talk about how easy WordPress (and others) are easy to install, that only applies to people that know nonsensical words such as FTP and MySQL.

Back when we were still affiliated with Evo-Dev (a disaster story is for another day), we realized that installing web software isn’t a simple process (wth is CHMOD?). So we offered free installation. But installation turn-around wasn’t instantaneous - the customer still had to wait on us). So we created (this is two years ago) an AJAX Web Installer.

The steps:

  1. User is told that he/she must supply us with FTP server address, login information, and MySQL server address, login information. Ask your host for that (there is a big difference between getting FTP information and actually having to FTP files)
  2. User was then asked to select what product (evoTopsites, evoTopsites Pro, evoArticles)
  3. If a paid product, user’s login was cross-referenced with paid product. If no info, asked that user login first.
  4. We asked for necessary FTP and MySQL information.
  5. We did an FTP connection. We then asked user what folder he wanted to install to, and gave examples (eg /articles/, /topsites/)
  6. Files were uploaded (complete with a status indicator). Once files were uploaded, other necessary operations were performed (chmodding files, etc).
  7. User was told that the software was successfully uploaded to his/her server, and would you kindly click to complete installation.

The user was then forwarded to the setup script, where the installation was completed.

Unfortunately, this never saw the light of day. It wasn’t cheap to develop, but it was awesome (worked on IE, FF, Opera, and Safari). It was quite fast (we had bought bandwidth directly from Internap), was straightforward, and our beta testers loved it. Errors were dealt with beautifully (incorrect FTP information, incorrect MySQL information, cannot chmod files, etc).

And yet I see nothing like this for any popular script out there. I guess I should get it re-created (that code went when Evo-Dev split off from us).

UPDATE: March 9 - People seem to think I’m just jumping on the AJAX bandwagon, when I’ve written about keeping AJAX in perspective (over a year ago) and about how web 2.0 is mostly crap (almost a year ago).

But in this application, AJAX makes sense.

To think it through, here are some steps:
1. User selects product
2. User inputs information (FTP, MySQL)
3. User either lets it auto-install or chooses a directory
4. Files are uploaded and configured.
5. User is forwarded to the installation script.

Think of #2, #3, or #4 in a non-AJAX manner. A horrible user-interface. I put in the information, and you make me reload the page. Then I want to choose a directory - are you going to reload the page every time? (We had a dynamic folder viewer which let you browse like a normal FTP client). When uploading files, is the user just going to wait around while you upload 10 megs?

No no and no.

User puts in FTP information, you want to show them (using AJAX) the connection in progress (resolving DNS, connecting, putting in password, etc)
User wants to select a directory, you let them browse dynamically.
User waits for files to upload, you want to dynamically notify them. Eg: “5 of 232 files uploaded (0.42/24.1 megs). ETA left: 5:30 minutes”

The AJAX-version would be far superior than the non-AJAX version.