This is a contest manager and practice site made to help with practicing for Texas UIL Programming competitions and adjacent.
There is a PDF viewer to read problem statements, the option of an in-browser code editor or a file upload for submission, and the choice of Java, Python, or C++ as langagues.
NOTE: Still a work in progress. Most of the work done has been on the backend with the judging system, so currently the UI is pretty bare-bones.
No followers yet
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
I revamped a lot of the judging system to add Docker container support for grading and reduce vulnerabilities. I also made minor frontend tweaks and wrote a README. Finally, I set up a demo on a server so that people can test it out once I ship. This will probably be my last Summer of Making dev log, but it's been a blast overall ❤️.
I made it so that contests aren't linked to only one problem set; they can have problems from any problem set thats been added to the site. I also set up an admin panel for adding new users and managing contests (shown in the picture below). Before shipping, I plan on adding Docker to the judging system, writing a couple more admin panel features, and overhauling the CSS across the entire site.
I added capability to make submissions directly to problem sets to facilitate practice. I need to do some refactoring on the code before I can add mash up contests (contests that draw from problems from different problem sets).
I added support for multiple languages (Java, Python, C++) and also a little button in the submissions table area to only show submissions for the selected problem.
I added it so that the correct section of a problem set's PDF is shown depending on the selected problem. I also added an option to write code directly in the browser using the Ace browser code editor library. Any code that is written for a problem is stored in the browser's local storage so that users can refresh and switch between problems without losing all of their progress.
To say it has been a while would be an understatement; I was busy working on an app for my high school with my friend :p. Anyways, I added a splitscreen PDF viewer + submit page. I plan on making it so that when a problem is selected, the corresponding section of the PDF is shown.
I added a table for submissions and a page to view individual submissions. My next task is to set up some CSS and do some refactoring and tweaks for permissions and authentication.
I added submission grading for Java. I plan to also offer an option to use Docker containers for grading for better security. There isn't a frontend interface to see submissions yet so here's a picture of the database lol:
I spent a lot of time on setting up Flask and Svelte, but so far I have user authentication, contest db models, and a setup script that works off of a .yaml file.