######################################################################
# OVERVIEW
######################################################################

This is "js-app", a framework for building applications in Javascript.

 * for installation instructions, see the INSTALL file

######################################################################
# DESCRIPTION
######################################################################

JS-App is a Javascript Application framework with which you can build
rich web applications and widgets embeddable in web pages. 
The framework is object-oriented, data-driven, cross-browser,
internationalizable, themeable, extensible. (+ Ajax)

######################################################################
# REQUIREMENTS
######################################################################

The js-app framework is designed to allow programs to be developed
that meet the following requirements.

 o Rich, highly-interactive applications which give the feel of a
   desktop application but delivered by the web
 o Widget-based, Object-oriented framework
 o Widgets should be embeddable within a page as easily as they are
   used to implement an application taking up the entire page
 o Widgets should be useful within any other page-generation
   technology (JSP, ASP, PHP, SSI, Perl Mason, Perl TT, App-WidgetJS,
   CGI.pm, etc.)
 o Cross-browser (type and version) (as much as possible)
   with graceful degradation allowed for convenience features
 o Internationalizable (translation dictionary, content encoding)
 o Themeable (based on CSS)
 o Data-driven application development
 o Supports asynchronous event dispatching and callbacks
 o Employs JSON-RPC (XMLHttpRequest/iframe) for server interaction
 o Built-in Timer/Scheduler
 o Bookmark-ability: access to any widget and session state encoding
 o Support printing (via separate CSS style sheet?)
 o Support for Sessions that makes sense (stored in a cookie?)
 o Support for Bookmarks/Favorites
 o Support for Bug submission (to drive a regression test with libjs?)
 o Support templates in every widget
 o Framework version support (About box)
 o Support light-weight widgets
 o Framework needs a style guide

Project Requirements:

 o Name: js-app (or JS-App)
 o Pure Javascript (with css/js/png resources) but includes Perl
   installer and reference server interface programs.
 o Stand on the shoulders of as many other projects as we can find.
   (probably meaning using their code)
 o Regression testable manually with many sample html files
 o Needs browser compatibility database and collection system
 o Regression testable with perl Javascript (libjs.a) and DOM::Mozilla modules
 o Hosted on SourceForge
 o Licensed as LGPL
 o Announced on Freshmeat
 o Distributed on CPAN with a Build.PL (App::Build) installer
 o Distributed on theoryx via PPM
 o Project includes core and extended subprojects
   (i.e. js-app, js-app-security, etc.)

Nice to have.

 o Limited local storage in cookies (?!?) (Preferences/Settings?)
 o Supports an interactive screen-builder
 o Standard regression test database application
 o Theme generation tool (requires theme-neutral image resources)

######################################################################
# SOURCEFORGE DESCRIPTION
######################################################################

OVERVIEW

JS-App is a Javascript Application framework with which you can build
rich web applications and widgets embeddable in web pages.  The
framework is object-oriented, data-driven, cross-browser,
internationalizable, themeable, extensible. (+ Ajax)

BACKGROUND

 * I needed to write a rich web application using Javascript/DHTML
   and searched for a good framework.  I found a variety of
   miscellaneous Javascript/DHTML widgets (menus, navbars, treeviews,
   grids, date selection calendars), but no general application
   development framework which ties it all together.

 * There is a lot of hoopla these days about Google's DHTML-driven
   apps and Ajax techniques.  The only framework I found on
   Sourceforge addressing Ajax techniques is "sajax", but this is
   PHP-centric.  I need a good way to build a complete application
   in Javascript which addresses the full range of application
   concerns.

REQUIREMENTS

 * data-driven - the Widget code exists, we need only configure to use it
 * cross-browser - architected for maximum compatibility (versions and brands)
 * internationalizable - a simple translation table should allow t
 * themeable - should reserve maximum flexibility of look and feel for the app developer
 * leveraged - incorporate existing (3rd party) widgets with a thin wrapper layer
 * object-oriented and extensible - every application requires custom widgets/logic
 * Ajax - asynchronous interaction with the server

DETAILS

 * Language: Javascript (for the framework) (+CSS)
 * Auxiliary Language: Perl for installation, regression testing, and server-side support
 * Browsers: As many as possible (IE 4+, NS 4+, Moz/Gecko/Firefox, Opera, Safari, Konqueror)

