Version 4 (modified by juri, 7 years ago) (diff)


New Frontend


The front-end needs to be built on YACMS. It needs to perform authentication of a username/password combo.

The site also needs to support a 'Guest User' so that the internet at large can see content that has been made publicly available.

User Creation

  • When an administrator creates a user, a home directory for that user is created.
    • This directory must have all applicable permissions for the user in question.

User Attributes

A user HAS:

  • A home directory (/home/<username> by default)
  • A series of aspects which other users belong TO.
  • An ID (for database purposes)
  • A Profile Page.

a user belongs TO:

  • Multiple groups.
  • Multiple aspects.

Group Attributes

A group HAS:

  • A series of users.
  • An ID (for database purposes)

Aspect Attributes

An aspect HAS:

  • An owner (always a single user)
  • A series of users.

Directory Attributes

A directory HAS:

  • A series of files.
  • A series of directories.
  • A single owner.
  • A single group owner.
  • Multiple aspect owners.
  • an access tuple for non-authenticated users.
  • An ID (for database purposes)

Special Directories

  • The directory "/" which is the default will have wide-open permissions, so that the world can use the site.

File Attributes

a file HAS:

  • A name.
  • A thumbnail.
  • An ID (for database purposes)

Permission checking

To check to see if a user has permission to a directory:

  • See if that directory is owned by the user.
    • If true, grant access.
  • See if that directory's group is a group that the user belongs to.

Opening Page

After logging into the new interface, the user should first be presented with their home directory , and a set of manipulation tools. 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 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.


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.


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.


Comparing to a supplied image is possible, it just needs to be eeked back out of the code.

Previous Frontend