Modify [url removed, login to view] poker-network authentication code so that it can accept plugins implementing the same API. The first task is to define an API that is suitable to store and retreive the user information, name, password and privilege as well as optional information in the form of name/value pairs. The existing implementation must be made into a plugin. An additional plugin must be defined that draws user and password from a designated MySQL database. The plugin must be searched in a path set in the [url removed, login to view] file. The plugin name must be defined in an element in the [url removed, login to view] file. An XSL file must be added to define the default plugin and add the path. The implementation must be fully backward compatible, even if the XSL upgrade was not applied.
A1) Complete and precise implementation of the description of the bid request.
A2) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
A3) Buyer will receive exclusive and complete copyrights to all work purchased. Third party software may be included as long as they are published under a license compatible with the GNU GPL.
A4) Software must be platform, browser and os independent.
A5) Software must be provided with a mercurial repository initialized when the work started (typically by unarchiving the sources and running hg init + hg commit at the toplevel)
A6) The work must be commited under mercurial on a daily basis.
A7) The reason for each change (not the change itself) must be explained in the ChangeLog file at the root the package tree.
A8) Deliverables must be in ready-to-run condition, as follows: a software installation package that will install the software in ready-to-run condition for Debian GNU/Linux.
A9) The software package source form must be suitable for the debuild command, be lintian clean and install properly with pbuilder.
A10) The software installation package must be provided with the first status report and updated for each status report.
A11) Software must obey the GNU coding standards as found at [url removed, login to view]
M1) All lines modified must be executed by the tests run with make check. R1) A set of unit tests covering 100% of the code written or modified for the job. There is no need to cover the code that already existed and that was not modified.
R3) Implement a verbose mode for running the tests so identifying which unit test fails and why is straightforward.
R5) The tests must be implemented using the same techniques as the pre-existing tests of the software being modified. It is not acceptable to create a new test environment.