#####################################################################
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.
- Rich, highly-interactive applications which give the feel of a
desktop application but delivered by the web
- Widget-based, Object-oriented framework
- Widgets should be embeddable within a page as easily as they are
used to implement an application taking up the entire page
- Widgets should be useful within any other page-generation
technology (JSP, ASP, PHP, SSI, Perl Mason, Perl TT, App-WidgetJS,
CGI.pm, etc.)
- Cross-browser (type and version) (as much as possible)
with graceful degradation allowed for convenience features
- Internationalizable (translation dictionary, content encoding)
- Themeable (based on CSS)
- Data-driven application development
- Supports asynchronous event dispatching and callbacks
- Employs JSON-RPC (XMLHttpRequest/iframe) for server interaction
- Built-in Timer/Scheduler
- Bookmark-ability: access to any widget and session state encoding
- Support printing (via separate CSS style sheet?)
- Support for Sessions that makes sense (stored in a cookie?)
- Support for Bookmarks/Favorites
- Support for Bug submission (to drive a regression test with libjs?)
- Support templates in every widget
- Framework version support (About box)
- Support light-weight widgets
- Framework needs a style guide
Project Requirements:
- Name: js-app (or JS-App)
- Pure Javascript (with css/js/png resources) but includes Perl
installer and reference server interface programs.
- Stand on the shoulders of as many other projects as we can find.
(probably meaning using their code)
- Regression testable manually with many sample html files
- Needs browser compatibility database and collection system
- Regression testable with perl Javascript (libjs.a) and DOM::Mozilla modules
- Hosted on SourceForge
- Licensed as LGPL
- Announced on Freshmeat
- Distributed on CPAN with a Build.PL (App::Build) installer
- Distributed on theoryx via PPM
- Project includes core and extended subprojects
(i.e. js-app, js-app-security, etc.)
Nice to have.
- Limited local storage in cookies (?!?) (Preferences/Settings?)
- Supports an interactive screen-builder
- Standard regression test database application
- 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)