Definition of the New Gift Web Interface
Authentication and Authorization
The front-end needs to be plugable into YACMS, by elisa. It needs to perform authentication of a username/password combo, and support authorizing user/group permissions to arbitrary objects.
Opening Page
After logging into the new interface, the user should first be presented with their visible image sets, and saved sort criteria. Selecting an image set will place them in the browse view for that image set, while selecting a saved sort will place them in the results view for the default image set associated with that sort, displaying results.
Image Sets
Each images set is a gallery of images to browse. It also has a corresponding GIFT database, and some associated metadata about how it was imported(region selected).
Default Image Sets
All users have access to an image set named 'Default-origin'. This represent a pristine starting point, and a collection of images every user in the system can view.
Browsing
Browsing an image set is implemented by performing a random query on GIFT against the image collection, and displaying that result. It should also be possible to specify browse by file name order, or other such name/tag text based sorting. The browse interface should include a 'export as CSV' function, so that this URI may be gotten at with automation scripts.
Searching
Once a user has selected an image set to browse, the browse interface should include the 'search' interface/functionality of the current frontend.
Results Page
The result of every search is every image in the database, sorted by how closely they match the images submitted. This should appear very similar to the 'browse' view, including CSV interface. From the results page one should be able to edit the submitted query, rsave the query for future use, return to the browse view of this imageset, or create a new image set from these results.
Image Set Creation
The user selects a region of the image to 'filter' the view through, when performing a new image recognition pass. This filter is applied to all images in the result set being imported. The user must also select a cutoff point for what is imported into the new image set and what is not. this may be specified either as a count of images from this query starting at the most matched, OR by specifying the minimum match value that an image must match to be included in this image set. There user should hit an 'invert' checkbox to get images that do not match, or are below the value.
A new image set created from a search should only be visible to the user that created it.
Tagging
Users should be able to tag images in result sets belonging to them by specifying a tag, and a cutoff point in a search. Users should also be able to search by tag, instead of image match.
Notes
Comparing to a supplied image is possible, it just needs to be eeked back out of the code.
New Shell Script Requirements
Much of the above functionality will require re-educating the gift import scripts. i recommend a SH port of them first.
Implementation
Install GNU GIFT
GNU GIFT's install directions are maintained on the QemuGiftServer page. Do not perform any image imports as of yet, or acquire any image collections.
Install YACMS
First, we are going to check out the YACMS fork designed for this, by elishy.
cd /home/gift/ git clone https://git.gitorious.org/+gift-yacms-core-team/yacms/gift-yacms.git gift-yacms
