Competition System Technical Overview

Previous: How Competition Levels Work Competition Information Next: New and Inactive Members : Site Access Restrictions
This page is a chapter in the book Competition Information.

[top]AusPhotography Competition Management System Overview

AusPhotography Competition Management System (APCMS) and (APCMT) were developed
to provide an automated tool to run photography competitions in an anonymous mode.
Previously Competitions were run by posting images to a thread and then members
posted their top 5 picks in another thread. This was a tedious and manual process.

The original goal was a simple system that would allow anonymous entry to
competitions using the vBulletin software environment, and this has now evolved
into a comprehensive competition management suite.

Work started in September 2009 was trialled in October and the first competitions went live in November 2009.
Since then various refinements were added to both the front end CMS that members
interact with and the back end tools used to run the competitions.

Of note are the automatic voting management tools, use of thumbnails, the ability
to copy entries for special competitions like the Photo of the Year, and significant
development of back end tools to help the moderators easily handle several
competitions running in parallel.

The system comprises nearly 14,000 lines of PHP, XML and Javascript code plus
several included standard libraries (eg. jQuery).

We are running version v4.2.0 as of June 2012 under vB4.2.0 (versions are now synced with vB)

[top]Competition System for AusPhotography.net.au members

  • Member interactions are fully integrated with vBulletin V4.1.8+,
    The system makes full use of vBulletin templates, BBcodes, navbar, security and other features
    NB: Not vB 'phrased' yet which means the texts (English) are hard coded [in the future]
  • The APCMS provides members a fully managed photo competition system with exact date/time cutoffs for entry and voting
  • Competition entry/upload (.jpg/.jpeg) provides competition selection and image checking (file size and WxH pixels)
  • The Competition entry form provides a summary of current and recent competitions,
    plus a list of a members current and recent entries
  • Per competition optional user entered entry titles
  • Entry verification step that displays image, thumbnail and competition details
  • Dates are formatted to member timezone settings
  • Disqualification reason displays to relevant member if needed
  • Thumbnails used extensively to save bandwidth,
    but the full size image is always used for voting
  • Thumbnails pop-up the full size image using vB Lightbox when clicked
  • Anonymous competition option, member names are suppressed until after voting is complete
  • The system uses GD, Image Magick and jhead http://www.sentex.net/~mwandel/jhead/ for image handling
  • EXIF data is removed from images for anonymous competitions, but stored with the entry record for Mods to view
  • Hidden entry competition option (images visible when voting starts)
  • Ability for members to report entries to the moderators by clicking an icon
    This creates a post in a moderator forum
  • Ability to search for competitions and entires that you or others entered
  • The system provides a personal performance index based on votes received in a month
  • Direct image voting (not via the actual vBulletin poll) with a verification step
  • Special link is added to the top of the poll directing members to the voting form
  • The system makes full use of vBulletin polls
    (indirectly, the poll is updated by the voting system, the poll appears closed to members)
  • Unique Voting Tokens are used to identify images Vccc_tttt for voting
  • Voting Tokens are allocated randomly for fairness reasons
  • Voting form shows entries in random order (reduces the chance of donkey votes)
  • Two stage voting system
    a) Qualifying vote (typically members pick the top 5 or score each entry 1..10 depending on competition type)
    b) Final vote (members select the best of the qualifying images)
  • Polls results can be hidden until voting completes (default is hidden)
  • Voting form always shows full-sized images at first, but can be shrunk to thumb size by click of a button
  • Voting select on left side of image (count for qualifying vote shown)
  • Un-voted polls are highlighted on Competition main form
  • Voting limited by number days (default 10) after joining for new site members
  • Thumbnails show on the poll results after voting is completed
    (Requires BBcode enabled on poll items)
  • If 10 point voting is used your points allocated are shown as well as the total vote score
  • Poll results are sorted into descending order
  • Members are restricted by certain user groups for entering or viewing/voting in competitions
  • Various BBcodes can be used to display entries in regular forum threads,
    eg. [APENTRY] or [APENTRYTHUMB]
  • Navbar (Menu) has active Competitions(x) item so members know how many Competitions are available
  • Entries images are stored in a non-browsable area and
    must be displayed via a module that enforces security,
    thus increasing © protection
  • Limit competition by skill level (a user profile field, Beginner, Intermediate, Advanced)
  • 'Performance' report shows members how their voting is going and also display a graphic of the results
  • 'Hall of Fame' report shows final polling to help admins decide member skill levels
  • The system sends a friendly PMs if member has entered a competition and not posted much on the site (participation reminder)
  • Has a vB4 Forum Block for displaying competition statistics
  • Has a module for vBadvance CMPS for displaying competition statistics
  • Displays member competition entries as a tab in their member profile

[top]Competition System Security Overview

  • Security by by restriction of viewing, entering or voting on a competition (list of user groups)
  • The system uses both primary and member groups
  • If a user was in (say) primary group 2 (General members) and member group 30 (Judges) and
    the competition restricted voting for groups 3 (Waiting email confirmation), 4 (COPPA), 8 (Banned), and 2 (General Members)
    then that user could vote on the competition but not general members.
  • This capability allows either peer, panel or single judged competitions to be run by the system
  • Only logged in users can use the system, i.e. not guests

[top]Competition Management Tool (CMT) stand alone tool for admins/moderators

  • CMT is a standalone tool not integrated with vBulletin [it does access the database]
    (In future this could be converted to a modcp/admincp tool)
  • Site wide defaults for system to make set-up easier (uses vBulletin options)
  • The competition and entry edit tools present data in tables (rows) and have filter (search) and column sort features
  • Competition System can be put into off-line mode (handy for testing etc)
  • Ability to create, search and edit competition data
  • Competitions have title and descriptive text (HTML and/or BBcode)
  • Competitions have control date/times (Open/Closed/Qualifying Closes/Final Closes)
  • Competitions have control fields (Files size, WxH pixels, Thumb size)
  • Competitions restrict certain user groups for entering or viewing/voting
  • Competition skill level can be set (any or all of Beginner, Intermediate, Advanced)
  • Date/time selector feature for all date/time fields
  • Dates default on creation to a POTW 7 day cycle
  • Ability to search/edit for all competition entries
  • Ability to search/edit for a specific competition's entries
  • Entries can be disqualified, with a reason text and mod notes text
  • Entries can have their UserID changed
    (handy for run-off and special voting set-up where a mod uploads an entry on behalf of member)
  • UserID hot lookup on entry edit form
  • Entries can be copied to a new competition
    (eg. Copy winners to the Photo of the Year competition for voting)
  • EXIF data is stored in entry record, viewable in English by mods
  • Ability to auto generate the Qualifying vote Thread/Post/Poll,
    which also generates the Voting Tokens in random order
  • Qualifying vote can be Top N or points 1..10 (but not both)
  • Ability to auto generate the Final vote Thread/Post/Poll
  • Competitions are linked to Poll Threads
  • Ability to reveal the entry names and add a thumbnail to poll results,
    which also un-hides the poll results
  • A secondary qualifying poll can be generated (not linked) for use with panel
    or other specialist secondary judging
  • CMT access via normal Navbar (which only shows for Mods)
  • CMT access subject to special username/password security (.htaccess)
  • Competition and Entry database tables use MySQL or InnoDB
  • Optional auto poll thread generation (scheduled task)

[top]Competition Time-lines

[top]Programming Code Statistics

As at V4.2.0 (2012-06-14) The CMS front end components consists of:
4,467 lines of PHP,
143 lines of Javascript (plus jQuery external components), and
1,574 lines of XML, which includes Templates, plugin PHP code, and configuration information.

The CMT back end (moderators) components consist of:
4,754 lines of PHP code and jQuery code (external library)

For a grand total of 14,002 lines of purpose written code. Note: SQL Code is embedded in either the PHP or the XML code.

Shared between both the front and back end is ~32,000 lines of externally supplied Javascript, mainly in the form of jQuery and Lightbox2 code.
Previous: How Competition Levels Work Competition Information Next: New and Inactive Members : Site Access Restrictions

Posting Permissions

Posting Permissions
  • You may not create new articles
  • You may not edit articles
  • You may not protect articles
  • You may not post comments
  • You may not post attachments
  • You may not edit your comments