In my last post I announced that I’m developing a new software application for putting data online with ease. The idea has been in the planning stages (that is, in my head) for the last five years while working for other software companies. In those five years while exponential leaps have taken place in Web capability, I’m amazed there’s still not an elegant way to put generic data online short of using a programming language. It really should be as trivial as creating a spreadsheet.
By “generic data”, I’m talking about the overwhelming number of cases when there is no custom app (Basecamp, Salesforce.com, Movable Type, etc) to fit the need at hand. So, the application I’m developing will enable you to put your company’s org chart in a database, or your softball league’s schedule and standings, or to catalog your ball of string collection or anything else imaginable easily. You’ll also be able to assign privileges to control who can view and who can edit your data, authentication for logins and endless ways to display the data: all the infrastructure that takes awhile to set up.
I’m not creating an online spreadsheet — the data will be supported by a relational database (MySQL) and user’s projects will be able to use joins to connect tables to create powerful views. If I was feeling ambitious I could claim that this web app can be used to create other web apps.
Users of the application will be able to quickly define tables and fields (text, date, decimal, etc.) and make appropriate connections to other table: say your field in your “ToDo” table is a list of task types — just join it to the TaskTypes table and you’ll be able to choose among that table’s contents (e.g., “Home improvement”, “Car”, “Shopping”).
Once a table is set up, the view files and accompanying templates allow you to start adding and manipulating data right away. Edit the templates later to incorporate the project into your own site.
Version 1.0
Like so much vaporware before it, there’s more than outlining a project for it to be shipped. I’ve been working full time on the application since September. As of now the end-user apps are beginning to stabilize and I’m already using many projects myself for bug tracking, project-management, expense tracking, as well as a plethora of personal projects: lists of bicycling climbs in the area (length, grade, ascent, ride calendar), advanced personal to-do lists, a catalog of my 16mm films, and more. I plan on introducing some working examples after the New Year for the all to see and scrutinize. Then I will be developing the “Editor” (an AJAX-enabled client for editing your project) and releasing a beta shortly thereafter.The features of 1.0 are well beyond what I’ve mentioned above, but will be intentionally scaled down so I can get something into the hands of users quickly. The precise feature list is yet to be decided but the first release should be able to handle the scenarios I’ve mentioned above.
The Future
Of course I have big plans for advanced features beyond 1.0. Some ideas lurking in my head for the future:- Web Services API access to views — to enable use of programmatical methods of accessing and manipulating data rather than just manual data entry
- Plug-ins for custom data validation — you only want IPv6 formatted data for a field? Write a custom regular expression in PHP that will validate it.
- Charting — put charts into your view
- Calculated fields — concatenate and calculate new fields based on existing ones, e.g., “days left” field calculates “due date” minus current date/time
- Event handling — onInsert() or onUpdate() can trigger actions to process the data or run a routine upon the event
