Like much good Free/Open? Source Software, OpenGuides is built on the code-shoulders of various existing projects. To provide the maximum flexibility of configuration, OpenGuides enables the administrator to use a variety of supporting software on a per-Guide basis.
OpenGuides is a set of Perl modules and scripts which implement a wiki oriented around city guides. The wiki itself is a CGI::Wiki instance, and the web interface is tailored for guide-relevant metadata, providing services like geographical searching and categories and locales.
Wiki::Toolkit is a Perl toolkit for building wiki applications. Basically, it handles storing "nodes" of text, turning wiki markup into HTML, storing arbitrary metadata for each node, and tracking changes over time. It's not an application in itself, but it provides most of what OpenGuides needs. It stores its data in a "backend" database.
Wiki::Toolkit uses the standard Perl Database Interface (DBI), which allows it to use a wide variety of databases as a backend. Currently, Wiki::Toolkit supports these backends:
- MySQL is a commonly found Free Software database server. It has a good reputation for being fast for read access.
- PostgreSQL is a slightly less common Free Software database server. It has many features, and is widely praised by database adminstrators for its impressive functionality.
- SQLite is a small C library which provides a SQL-like interface to a file structure. It's suitable for small databases and saves the effort of running a seperate database server.
OpenGuides uses one of two Perl modules to implement searching - Search::InvertedIndex and Plucene.
OpenGuides uses Template Toolkit to generate output. This is a powerful system to allow control over content without writing any code. OpenGuides allows admins to customise templates on a per-Guide basis easily.