Online Workspace for Codeforces Problems

Revision en1, by ekzhang, 2020-05-25 20:31:23

Hello all,

Like you, I enjoy solving Codeforces problems on the go. However, sometimes I am not working on my computer with all my environment and setup. There are many automated problem parsers and test runners to help make solving Codeforces problems painless, but they all require a complicated installation process.

About a year ago, I was introduced to CS Academy, which I thought had an amazing interface for solving problems. It shows the problems and your code side-by-side, and you can automatically run your program on the example test cases. Also, there is auto-saving in case you accidentally close your window. Why can't we have this for Codeforces?

I couldn't find anything on the web that was easy to set up and fun to use, so I made my own online workspace at wkspace.herokuapp.com.

Screenshot of wkspace

Here are some features:

  • No sign-up or installation required
  • Parses Codeforces problems and displays them side-by-side with code
  • One click to run your code on all example test cases (for non-interactive problems)
  • One click to submit your code to Codeforces (if logged in)
  • Auto-saving of code in the cloud
  • List workspaces you have recently edited
  • Share a read-only paste of your code by link
  • Support for new versions of the most common languages (C, C++, Python, Java, Ruby)
  • Configurable themes (Monokai, Dawn, Solarized)
  • Configurable keybindings (Vim, Emacs)

I have been using and developing this myself for the past year, and it is fairly stable now, so I would like to share it with you. Please let me know if you have any feedback on how to improve it!

Note: The code is open source and available at https://github.com/ekzhang/wkspace.

Thanks to Herman Došilović for making the Judge0 API, which is used in this project.

Tags app, online judge, codeforces-scraper

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en1 English ekzhang 2020-05-25 20:31:23 1961 Initial revision (published)