Eon: A New Way to Code Competitively
What is Eon and what does it do?
Eon is a platform to practice your programming skills with simple challenges that give you an input, tell you how to process it, and check for the correct output. You don't need to install anything or use any other websites: Eon will run your code, in a sandbox environment. You will have access to the full standard library of your language.
When you complete a challenge, your code will be run with ten test inputs. If the number of test cases passed is n, the score achieved is n**7 // 10000000. This means that for 10/10 you will receive 1000 points, for 9/10 you will receive 348 points, for 8/10 you will receive 107 points, et cetera. If you use the hint for the challenge, your score will be halved. When you redo a challenge, your score can only rise, not fall; if you achieve a lower score the second time, nothing will change.
All challenge submissions have a maximum of 0.2 seconds to run.
How does it work?
The backend of this website uses the Python library Flask. The in-browser code editor is CodeMirror. The code is run using Repl.it's Crosis API - massive thanks to @Scoder12 for helping me get that to work.
What are the current problems?
At the moment, there are only 3 challenges. I do plan to add more, but I need ideas - comment if you have any!
Only Python is supported for now, but I hope to change this soon. The next language I add support for will probably be Node, but after that I have no idea, so please comment what you want me to add!
Why am I getting 0/10 test cases when my code is correct?
Have you clicked the button that says "Read before submitting code"?
@maxina no, I cannot. The problem is, how do you run a user's code safely? That is, how can you ensure that there is absolutely no way for the user's code to interact with the server and potentially break things? The only real solution for this was to run the code in a repl, as repls are completely isolated.
When I click "submit", it just starts loading forever. In the browser console I get the following errors:
Failed to load resource: the server responded with a status of 500 (Internal Server Error) Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
However, the first one is sometimes different (though the meaning seems the same):
POST http://codejam10.minx28.repl.co/challenges/1 500 (Internal Server Error)
This really looks cool but no matter what I can't seem to get it to run.