My final year project at University of Sussex was inspired by the frustrations encountered with traditional CAPTCHA systems, especially on mobile devices such as tablets and smartphones. My approach to coming up to an alternative system was with primary objective of not only defeating bots, but also to produce a more pleasant user experience.
piCAPTCHA uses images and gestures to prevent bots from performing activities which are intended for human users only. The system provides user with a contextual task which the user has to complete in order to be able to proceed with their activities on the website. For example, given an image of a street the user can be asked to draw a line between the light stop and a car.
The system was refined with further user input, where over 170 people have responded to test the piCAPTCHA system. In addition, users were asked to complete piCAPTCHA and traditional CAPTCHA (reCAPTCHA) to compared the two CAPTCHA systems. The majority of the users have agreed the piCAPTCHA system felt faster, easier, more fun and more natural. The data was surprisingly positive, given the system was new to the users, still in development and required further refinement of the user experience and the code.
The final output of the project was a picAPTCHA as a web service, where developers could register, view statistics of their websites, integrate picAPTCHA into their websites. In addition, the admin panel had advanced features such as adding images, tagging images, re-tagging, general statistics, developer statistics. The back-end of the system was built using Scala with Play! Framework with MongoDB for image and data storage. For the front-end pure Java-Script was used to minimize dependency on external libraries and reduce the traffic for the user.