Hi guys, I don't know if any project like this already exists (are weekly comps calculated manually by a human? forum search didn't help), if it does just insult me, but do it gently
I was thinking about a way of standardizing the results submit of the forum competitions for a single user, so that any client (qqtimer, prisma, cct, ecc.) can "easily" be a client for all the competitions available.
We define a standard for submitting nickname, times, event, ecc. so that any compatible server can handle them. Anyone can host a new competition as long as its server accepts the pre-defined format. I'd personally like to keep it simple; passing post parameters or an xml or json should be fine.
Advantages are obvious, integration in the current offline or online timers, time saved for people who hosts the competition, no human mistakes possibile, and of course we keep posting results on the forum for comments! The only downside I see is for developers who will need to develop a new "module" for their application and/or a new server for any competition (but i think most of the source should be reusable for both servers and clients if well coded).
Not mandatory but useful could be a place where a list of available competitions is mantained (wiki?). A client may also fetch this list and present it to the user with a short description of events, format, ecc. The list should contain the url for submitting results and getting the scramble for client convenience.
I also tried to write down a draft of needed functionalities:
WHAT A REQUEST SHOULD CONTAIN
- competition id
- event (222,333,444,555,666,777,SQ1,3BLD,4BLD,5BLD,MBLD,e cc.)
- round #
- country (optional)
- email (optional)
- cube used (optional, just for statistics)
- client used (optional, just for statistics)
- notes (optional)
WHAT A CLIENT SHOULD DO
- let the user choose the competition
- fetch scrambles from server for event/round
- collect times ^^
- verify format (ao5, ao12, mo3, ecc)
- build request in the standard way
- send to server
- understand response
WHAT A SERVER SHOULD DO
- gives list of valid/available events and rounds for each comp based on current date (for rounds)
- give scrambles in a standard way to clients
- accept submits in the standard format
- check request format
- return standard error codes (for date expired, invalid format, already submitted requests, generic severe error, ecc.)
- manage users, charts, points, rounds, dates, formats (ao5, mo3, ecc.)
ANY feedback is appreciated, please share your ideas about this, anything that comes to your mind.
Anything missing? Do you think there's too much work to do?
EDIT: maybe software area was more appropriate