Programming Contests Online Judge Module
Overview:
My Proposal is about building a Module that bring the functionality for an Online Judge For Programming Contests(http://en.wikipedia.org/wiki/Online_judge), there exists a lot of open source platforms for that(http://code.google.com/hosting/search?q=label:onlinejudge), but anyone is build over a great community platform like drupal, that systems are used for a lot of students around the world for learning issues related to programming languages, algorithms and for improving your programming skills trought training and competing on programming contests, for that reason that communities need a great platform to interact.
Description:
The main functionalities that will be build are:
1. Build all the functionalities to have an Online Judge Problem Set, on which the coders can test the correctness of your solutions at any time(example: http://acm.pku.edu.cn/JudgeOnline/problemlist ), we need a interface to post new problems and test cases such that the judge can work.
2. Build a System to program Live Programming Contest, that is with a fixed time duration, new problems, public or private( example: http://acm.tju.edu.cn/toj/vcontest/).
To achieve the goal of the project, we need to connect two main parts:
1. The heart of the system, that will be built on the module using the apis of drupal.
2. the backend to validate the code submitions for the programmers(JUDGE).
The development of the project will be centered on building the drupal part for the funtionality, this will interact for your first version width the JUDGE component of another great open source project DOMJudge(http://domjudge.sourceforge.net/), this were selected for your modularity, flexibility, better documentation and maturity(this judge can validate submitions of code done with C, C++, Java, Pascal, Perl, and could easily be extended to other programming languages).
Case Uses:
- Manage Live Programming Contest: We can program Live Online Contests, the problem setters can propose new problems, or can choose problems of the problem set, the system will receive submitions only for a determinated period of time.
(example: http://code.google.com/codejam ). - Open Training for solving problems of the Problem Set: The coders can send solutions to problems of the set at any time, each problem set has his own discusion forum, statistics, etc.
- People can use de module on programming courses related to learn programming and algorithms at schools, universities, etc.
The module will implement:
- Database Schemas that support the described functionality().
- Permitions, Roles and Profiles (Problem Setter, Coder, Administrator)
- Content Types: Problem Statement, Test Cases, Submitions, Live Contest, Clarifications.
- Funcionalities related to the use cases.
- Views: Problem Set, Coders Rank List, Submitions Run Status, Scoreboard Live Contest.
- Possible implementations of functionalities related to other contrib modules: drutex, geshi.
Timeline:
* May 24 - 31st: Configuring Development Environment(GIT, DOMJudge, IDE, servers), learning best practices and planning with my mentor.
* June 1 - June 5: Research, tests of the judge backend of DOMJudge, defining database structures, permitions, configuration parameters.
* June 6 - June 19: Implementing de hook_install.
* June 20 - June 26: Implementing Content Types(Problem Statement, Test Cases, Submitions), Roles, Permitions that will suport the first part of the module(Online Judge Problem Set ).
* June 27 - July 4: Programming Hooks and functions related to the Problem Set, Testing.
* July 5 - July 11: Testing and Implementing Views: The Problem Set, Submitions Run Status.
* July 12: Submit MidTerm.
* Juli 13 - July 18: Implement de View: Coders Rank List, and Profiles.
* July 19 - July 25: Implementation of Administration interfaces.
* July 26 - August 1: Implementation of Content Types(Live Contest, Clarifications), Roles, Permitions that will suport the second part of the module(Live Programming Contest).
* August 2 - August 8: Testing Functionalities.
* August 9 - August 15 : Implementation of Administration interfaces and testing.
* August 16 - August 19 : Implementing Aditional Useful Functionalities of related modules.
* August 20 - Final Report submission.
Mentors:
* I haven't mentor yet, I will be happy if you could be My Mentor =).
Contact Details (email at minimum): danny.montalvo at gmail dot com
Difficulty: Medium
PD: Link to a Formatted document: http://docs.google.com/View?id=dfcmmm9f_273dj84npc5
Bio: I am an electronics engineering student, I were working with drupal for a year, also i am an active member of the Drupal Perú Group, i participate on the last two drupal camps peru, were i did some sessions, some of them were related to drupal module development(http://groups.drupal.org/node/55813), also i participate for several years on algorithmic programming contest like the acm icpc programming contest(www.acmicpc.org) for which the last year i were judge for the peru Site, also y have experience on other similar contests like some organized for topcoder.com and google codejam.

Comments
Exactly what I am looking
Exactly what I am looking for.
Following is the list of my interests that somewhat matches to your list :) :
* Topcoder
* Code Jam
* Drupal module development
Though I am not very good at algorithms but I am doing so much hard work in this department. I am looking forward to create an online judge in drupal that can be used to automatically judge the problems like TC and Code Jam. I highly support and appreciate your idea.
Hi, Any updates on this?
Hi,
Any updates on this?