A List Of Riot Features

Ease of Use

Riot's intuitive AJAX interface allows you to edit your content directly on your website, exactly where it is displayed. The interface is totally non-invasive and doesn't tamper with your site's layout. No extra frames, borders links or buttons - just a simple floating toolbar. If you haven't seen it yet, go and check out the online demo.

Image Cropping

Uploaded images can be cropped or scaled down if they are too large. You can define minimum and maximum dimensions for your images or a set of fixed widths and heights.

Business Data Management

Riot can be used as unified interface that lets you manage all your business data, no matter where the data is stored. By implementing a single DAO interface you can plug in any kind of data source, whether it's a database, directory server, a webservice or any other kind of legacy system.

Friendly URLs

The URLs of your Riot pages look any different that the URLs of static documents. They are easy to remember and are optimized for search engines.

Full markup control

Riot contains no hard-coded markup. This allows you to build fully XHTML compliant and accessible websites.

Link Integrity

Riot keeps track of all changes made to your sitemap. Bookmarks and Links from external sites keep working even if you move or rename a page. Additionally Riot crawls the website, looks for broken links and reports them on your personal Riot dashboard.

Caching

Riot has a built-in caching mechanism that increases the speed and keeps the number of database queries to a minimum.

Multi Language Support

Riot supports multiple ways of creating multi-language website. You can have individual sitemap trees, or a global sitemap with translations for each page (see riot-babel). Of course every single text of Riot user interface can be translated too.

Staging

While all changes made to content components are immediately visible to editors they must be published in order to appear on the public website. Editors can switch back and forth between the live and preview to compare the versions. The Riot backoffice provides an overview of all pages that contain unpublished changes, including the information who modified it and when.

Asset Management

A centrally managed media library allows you to reference files from your content pages and thus allows the reuse of digital assets throughout your site. You may either use the riot-media module as is or as a base to build your own custom media library.

Full-text Search

Riot's search module indexes your website the same way popular search engines do. This ensures that all your content will be searchable, no matter where it comes from (external databases, imported RSS feeds, etc.). The features include: multiple language support, result highlighting, fuzzy searches, exclusion of navigation, header, footer, etc.

Clipboard

The Riot backoffice provides a clipboard that can be used to copy or move pages. The same clipboard can be used for your custom business objects, all you have to do is to implement some simple methods in your DAO layer.

Powerful Module System

Riot comes with a powerful module system that allows you to reuse features for multiple projects. A module can define list and form views, provide controllers and views (for either the website or the backoffice), internationalized messages, Hibernate mappings, et cetera. It can add or overwrite beans in the Spring application context and even define new Servlet filters.

Database Refactoring

Riot includes a powerful database evolution tool that allows you to refactor your data as easily as your source code. The feature is used by Riot internally to automate the data migration upon updates but is also available for your custom applications.

Configuration Management

The Riot project skeleton comes with a powerful Ant-based configuration system that allows you to keep configurations for multiple target environments under source control. This way you can easily deploy your application to systems with different database setups or logging configurations.

Personal Dashboard

The start page of the Riot backoffice contains a space where modules and custom applications can display status or workflow messages for groups or individual users.

Background Job Management

Applications often need to execute long running background jobs, like imports, exports or data conversions. Riot provides a powerful yet simple API to control and monitor such tasks with a nice AJAX interface.

Security

Riot comes with a powerful security API that allows you to plug in various authentication backends and implement custom access policies. While writing your own policy might sound a little inconvenient at the first glance we belive that this is the only way to create a non-bloated and intuitive user interface. It's also much easier to write a policy using Java code than to express rules via ACLs or such.