- Name: Grant Grueninger
- Project Title: DBEditor
- Synopsis: DBEditor implements a CGI-based database editor. It allows you to very quickly implement a basic table editor by simply stating table data in configuration files (tools are provided to create the configuration files from your existing tables SQL schema).
DBEditor implements a CGI-based database editor. It allows you to very quickly implement a basic table editor by simply stating table data in configuration files (tools are provided to create the configuration files from your existing tables SQL schema).
Set up your database config info:
mv db_template cgi-bin/db_lib
vi db_lib/dbconfig.pl # Edit database connection settings
vi nav_lib.pl # Optional: Customize your nav bar, add links to many tables, etc
Set up an editor for your "contacts" table:
cp -rp template cgi-bin/contacts # template contains edit_items wrapper, config.pl, plugins.pl
vi cgi-bin/contacts/config.pl # Edit table schema
Point browser at:
You can then quickly add functionality using plugins (provided as subroutines in plugins.pl), for example:
- Turn text URLs into HTML links
- Process text output
- Verify input
- most other things you'd want to do in a web app.
It is easy to add more "plugin points" in DBEditor for future needs.
Benefits to the Perl Community:
DBEditor provides an extremely simple and fast foundation for a web application. Setup and learning curve is much faster than Catalyst (about 1 hour for a new user to get a simple table editor running), and it's simpler and more stable than Jifty (DBEditor has been around longer and specializes in editing database tables). It provides the means to set up a simple web app to edit a database that can be easily expanded into a more robust application.
Review and re-write existing code in DBEditor.pm to:
- Make it an object oriented module.
- Have clean, secure code.
- Work under CGI or mod_perl implementations
- Be "taint safe"
Complete the existing documentation:
- Add Quick start instructions for new users
- Add Full setup instructions for new users
- Review and clarify existing documentation
DBEditor was originally written as a set of CGI scripts. A copy of an "edit_items" script had to be placed in each directory and had accompanying config and plugins files. The main script code was then moved into a perl module and the "edit_items" script replaced by a wrapper that contains: "use DBEditor; &process();".
The module is functional and in use in several web sites I maintain. However, the code and documentation is not "clean" enough for me to release to CPAN. It also needs to be made into a true OO module to be compatible with mod_perl. These are tasks I'd like to do, but I haven't had sufficient motivation since the module functions suitably for my needs. Given the module's evolution, these are not minor changes. The code will need to be completely reviewed and revised, and proper documentation will need to be written so that new users can utilize the module easily.
Based on my current workload, I would be able to deliver within 1 month and begin work within 1-2 weeks of grant approval.
I have been programming perl since the early 90's, and have been programming in general since the late 70's (when I was 8). My father owns a computer company in what's now called "Silicon Valley", so I grew up around computers. In 1996 I wrote a web-based project management system that I use to this day in my consulting work. I have also authored several CPAN modules including WWW::Myspace, WWW::CDBaby, and WWW::Sitebase to help musicians promote themselves online and access their CD sales data.