This is a microtask for Outreachy applicants for T158909: Automatically detect spambot registration using machine learning (like invisible reCAPTCHA) .
We want a new plugin for the MediaWiki extension responsible for our new user registration CAPTCHA, called ConfirmEdit. This new plugin will attempt to prove the user is human using mouse movement data. If this attempt fails, we want to fall back to another type of CAPTCHA.
In this task, please write a stub for ConfirmEdit which introduces a new plugin. This can be as simple as a button saying "I am not a robot", and another saying "I am in fact a robot". If the user fails this test (we think they may be a bot), they should be presented with a second type of CAPTCHA. Currently, this system is only designed to show a single plugin.
- Set up local development environment. You'll probably want to use MediaWiki-Vagrant.
- If using MW-Vagrant, you should be able to vagrant roles enable confirmedit to install the extension.
- Make sure you're able to see your local wiki, and that you are presented with the default CAPTCHA when trying to create a new account.
- Create a new plugin by copying e.g. ConfirmEdit/SimpleCaptcha to a new directory, renaming the classes and files and adding to ConfirmEdit/extension.json.
- Change your new plugin to present something simple like a button or text field that can be used to "pass" or "fail".
- If the user fails, set a PHP session variable to flag this failure.
- After the user fails, or if the failed CAPTCHA session variable is present, fall back to SimpleCaptcha. This can be hardcoded for now.