WACS: Futures

Contents

The Junk Yard

As with many packages released in a (hopefully) usable on day one state, Wacs has been in use and developement on the author's machine for several years prior to it's GPL release. That release project has required a lot of cleaning up, documentation and particular the removal of system specific entries out to a more generic framework based on a configuration file. Many little useful utilities are yet to be cleaned up for public consumption, others will need a re-write before they are completed and ready. The idea is have an area in the SVN repository for these various little scripts. They may not even work as-is but may provide useful clues and ideas for people wishing to work on WACS - hence the name junkyard.

Code Enhancement

As ever with a piece of under-development code, there are many new features being thought about, planning and on the horizon. This section summarises a few of the key ones and provide a list of possible projects to consider if you wish to work on the WACS codebase.

Install

The current manual installation proceedure is pretty complex. The easyinstall script was the first step down the path to a "works-out-of-the-box" version of Wacs, but this needs much more work to be likely to work on a reasonable set of Linux distributions. The upgrade script is also somewhat basic and doesn't really cope very well with things which MIGHT have changed. It has got a little better in later 0.6.x releases as it'll now install a lot of icons if they don't already exist.

Security

The basic security mechanism is complete: basic enforcement, login, lease handling, user role and a fairly complete implementation of exclusion preferences are all present. Not all applications that should use the exclusion mechanism are yet aware of it. Initial code has been added to limit the amount of damage "viewer" grade users can do. Again there is more work to do on this. The login screen which adds a temporary lease for that user/host combination is now complete and seems to work; it includes the consent tick box and the preference exclusions requests. Future work includes accepting connections which specify an HTTP_USER and HTTP_PASSWORD and not requiring them to reauthenticate if the details given are valid. Hooks have also been placed within the configuration system to allow for future alternative techniques for authentication with a user account database schema a distinct possibility.

Connections

The new connections (conn) database table is designed to allow extremely flexible connections to be established between various records. There aren't yet any clearly defined rules, but the idea is that if you have say a particular piece of clothing belonging to a particular photographer that you can establish a link between each of the sets featuring it. It can be the same for a location, a theme, a style, etc - very flexible. It will also be possible to use connections for binding together sets and videos that feature the same scenario, and will be the building block to creating galleries. So far there is only an SQL interface to adding new connections and this needs to change.

New Applications

Within series 0.7.x, a lot of work has been going on in terms of adding new web-based collection management tools - the model manager, set manager, unpack and placement managers all being good examples. We also took a look at the large number of SQL scripts lying around and decided to build them into a new web-based statistics application. More applications are still needed including a preferences manager and the connections manager; hopefully these will be added as the 0.7.x series progresses.

Metadata Exchange

A long term project which I would consider really interesting would be to allow the free exchange of metadata between Wacs users. Information on other web sites that also feature sets by favourite models, attributes definitions and long format set names linked back to the source set id would make importing new sets quicker and more efficient. Of course a protocol and standard format would need to be defined along with some absolute frame of reference for each model and set. Hopefully a developer community around the GPL'd version of Wacs can work towards this goal. The wacsexport and wacsimport scripts already allow the exchange of model details, and this is significantly expanded in 0.7.3 with the inclusion of wacsxmlin and wacsxmlout for transfering set details.

Programming Interface

While Wacs is designed to operate as a free standing site, there is definitely a draw to making it extensible and configurable for people who want to develop their own user interfaces. To this end a PHP interface module has been developed, and the documentation on programming using the Wacs API has been enhanced (with more to come). At present the PHP interface is mostly focused on interfacing with the configuration files and database routines, but future plans include more general API functions to make developing PHP pages easier. With 0.7.3, we've introduced the wacsui module which provides content related API calls in both Perl and PHP. A future direction may be to include some alternative site "skins" which can be laid over the basic Wacs system. If someone is keen to work on this, please contact beaky.
Back to WACS Documentation Index