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.
N U T S H E L L | |
Product | WebSite-In-A-Box |
---|---|
Description | Framework for building dynamic web sites |
Language | Perl |
Interface | GUI/browser |
Platform | any |
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:
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.
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.
URL=.../cgi-bin/cgiAppBase/logout
This is a simple logout confirmation page.
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.
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.
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.
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.
URL=.../cgi-bin/cgiAppBase/newAcct
New users to the site will come here from the login page to set up a new
account.