A simple java/php/cgi based web server application that works in tandem with a client side desktop application to manage online members playing chess against each other. (no chess move validation required!)
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).
Description of processes that must be supported:
a) Registration on the server (membership site) requireing e-mail, username, password, skill level . This is posted into the existing phpbb forum db and will be handled outside this project.
b) the server recives a client program call for online status (Client posts username, password, ip, location,...). The server will negotiate online status and return a successful log on, if password and user match. otherwise return unsucessful code. The server adds the user into table of online users.
c) Client passes request for online user list. The server ensures that the request comes from an authorised request and starts pinging all currently held online users. Currently available users will be passed to the requesting client. Currently unavailable users will be pinged again twice, then removed from the online-table and a cancelation code sent to the client ip (just in case of wired firewall behaviour)
d) A user passes a game request to the server (player name & posibly a unique game id for continuation). The server will send a game request to the requested user id (user, ip, location, ... and color request).
e) the server recives a "game arranged" code containing: user1, user2. The server will send both parties the username and ip values of the other user and delte both users out of the online table.
Given the above server functionality it should be posible to facilitate for online users to hook up and play a game. The passed ip would be resolved in the client program to create a direct link. If this is not posible in tandem with the existing connection to the server then the server will pass 5 movement value between the 2 clients.
For an extra bonus the db would handle tournament managent, emailingplayers their current position in the tournament, tournament progress and their next game. Each game would have to be played by a certain date. The set up of the tournament would be posted into the db using a form.
Simplicity is key and the ability to handle all errors. It is more important for the server to be solid then flash!
The current infrastructure is in place:
mysql, php4, Apache Server, cgi bin, r3dchess client (will be developed in paralell depending on the choices made here. The client will handle move validation and all that:)