CleanCode logo
NAVIGATION: first page in sectionprevious pageup one levelnext pagefinal page in section


You know how to create a static web page that has stuff on it. You know how to link web pages together with static links, e.g. <a href="next page">Next Page</a>. You know how to do Perl programming and SQL. So with all these, you understand the concept of creating a dynamic web page (where page content is dependent on user input and database values), and even a dynamic web site (where page-to-page navigation varies based on input errors, user values, data validation, etc.), and you want to just open up the "box" and turn on your website. With WebSite-In-A-Box, you can do that. This package builds upon the raw framework of CGI::Application, adding account creation (by user), account deletion (by admin), admin vs non-admin privileges, admin override (su username), state retention, authentication, site flow engine, template-driven pages, logging, and on-demand diagnostics delivered to browser. The only preparation you have to do before you can run a website is to put a few directories in their proper location, setup a couple database tables, and edit a couple lines in the configuration file.

DescriptionFramework for building dynamic web sites
Reference API Live Program

The minimal setup required provides you with a framework web site; you still have the task of customizing it for your needs. This framework is more than just a web site flow engine, however. It provides out-of-the-box web pages for welcome, login, logout, forgotten password, home, and a user list page (this last for the administrator only). It provides out-of-the-box functionality to handle:

The pre-defined web pages make use of style sheets to present a clean, two-column layout (sidebar and main panel) plus a page header and footer (thanks to Ryan Brill at A List Apart for the "liquid layout" article). The pages further include a minimal JavaScript support file, and include validated XHTML code.

Here is a description of each of the included pages; click on any one of the thumbnails for a full size view:

welcome page

URL=.../cgi-bin/cgiAppBase/welcome (or just .../cgi-bin/cgiAppBase/ when not logged in) This is the gateway page to your site. The body may be customized by adding HTML to the welcome.thtml template file.

login page login page with an error login page after a password reminder

URL=.../cgi-bin/cgiAppBase/login This is the login page, allowing a registered user to login or to access a password reminder, and allowing a new user to create an account. The additional screen shots show how feedback from a login error is presented, plus feedback from a password reminder which also returns here.

logout page

URL=.../cgi-bin/cgiAppBase/logout This is a simple logout confirmation page.

home page for non-admin user home page for admin user home page for admin override

URL=.../cgi-bin/cgiAppBase/main (or just .../cgi-bin/cgiAppBase/ when logged in) The main or home page, this is displayed when a login is successful, or when the home link from the navigation panel is selected. This page may be tailored as shown to display different text for an admin vs. a non-admin user vs. an admin-overridden user, via conditional parameters in the template.

edit profile page

URL=.../cgi-bin/cgiAppBase/editProfile This page allows editing/updating the information that was used to create an account. The user may update his/her own information, or the admin may update anyone's.

user list page

URL=.../cgi-bin/cgiAppBase/user Available to the admin user only (controlled via the template), this shows a list of all users, when each last logged in, and whether each is currently logged in.

forgotPwd page forgotPwd page

URL=.../cgi-bin/cgiAppBase/forgotPwd From the login page, the user may navigate here to request a password reminder via e-mail. The second screen shot simply shows how invalid user data is presented.

newAcct page

URL=.../cgi-bin/cgiAppBase/newAcct New users to the site will come here from the login page to set up a new account.

Go to tech docs Go to live program

Valid XHTML 1.0!Valid CSS!Get CleanCode at Fast, secure and Free Open Source software downloads
Copyright © 2001-2013 Michael Sorens • Contact usPrivacy Policy
Usage governed by Mozilla Public License 1.1 and CleanCode Courtesy License
CleanCode -- The Website for Clean DesignRevised 2013.06.30