Giter Site home page Giter Site logo

varqox / sim-project Goto Github PK

View Code? Open in Web Editor NEW
24.0 3.0 6.0 18.41 MB

Sim is an open source platform for carrying out algorithmic contests and programming classes. This repository contains all Sim projects as a monorepo.

Home Page: https://sim.13lo.pl/

C++ 85.95% JavaScript 8.35% CSS 1.57% Shell 0.21% Python 1.44% Meson 1.20% Tcl 0.83% C 0.25% TeX 0.22%
sim algorithm-contests

sim-project's People

Contributors

maciejczyzewski avatar tonowak avatar varqox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sim-project's Issues

Web client broken on minor browsers due to a small compatibility issue

TL;DR

Many minor distributions still use Chromium 83 but produced by the builder/optimizer script.js involves logical nullish assignment (??=) operator which is supported by Chromium 85 and above.

A brief introduction of myself

With respect, gentleman. I am Adam Maleszka, a graduate of the ID class of the XIII'th High School in Szczecin. In the 7th grade I became a "laureate" of the Junior IT Olympics (laureate in quotation marks, because that year the final did not quite take place). In practice, my fascination with computers reaches even the 1st grade though. I love competitive programming, networking, security and cryptography, GNU/Linux and the whole Open Source community.

Chromium compatibility issue

I've been using Linux for five years and managed to choose my final Linux distribution, GNU Guix. It's ingenious, it's powerful, but also out-of-date a bit, especially with qtwebengine 5.15.2 (Chromium 83). It is worth noting that qtwebengine 5.15.2 is in many distributions, even on Debian Bullseye.

image

After inspecting the script.js, the reason seems to be in logical nullish assignment operators which is not supported by Chromium 83:

image

It is surprising to me, especially since the source code appears:

https://github.com/varqox/sim/blob/b115a4e858dda1288917243e511751b835c28482/src/web_server/static/kit/scripts.js#L238-L247

Does any compilation tool optimizes the above code for the newer standard, Chromium 85? It looks like a small tweak in the building system and SIM on my browser will work back.

Installation hangs at running custom install script

I've decided to try hosting a local instance of sim for whatever reason, and while installing I've been following the steps given in the README (steps from the section Instructions: release build and installation step by step).
However, at step 7 (meson install -C release-build) the command shoots out a lot of output, then hangs with the last message being Running custom install script '/usr/bin/sh -c <sim-install-dir>/release-build/setup-installation "$MESON_INSTALL_DESTDIR_PREFIX"'. Is this step supposed to take >1 hour, or is something happening?
For information, everything before this happened went fine with zero errors whatsoever.

Running Arch Linux x86_64, with all required packages installed and updated.

Sim v0.1

List of things which should be done for a v0.1 release.

Tasks

  • Problems administration
    • Problem editing
      • Name
      • Label
      • Memory limit
      • Checker
      • Main solution
      • Solutions
      • Tests
      • Rejudge all submissions
      • Package downloading
      • Problem adding / reuploading - allow detecting more tests than it's specified in the Simfile
    • Problemset
      • Difficulty
      • Tags
      • private/public
  • Users administration
    • Users list
    • User profile editing and deletion
    • Registration blocking
    • Add user
    • Ask for password when editing username or email or type or password.
  • Command line options
  • Move to epoll()
  • Different compilers of a submission
  • Languages on the site
  • Processes names
  • FD_OPEN_LIMIT ???
  • Killing a subprocesses (Spawner and server at exit)
  • Main args parser ?
  • BUG: filename cannot contain '/' - possible HTTP header injection
  • Session IP and proxy - create instructions in README
  • Notes - temporary "submissions", useful to save code
  • Chdir guard?
  • BUG: editing contest when incorrect username => do not accept
  • Improve site navigation
    • Side menu
    • Ranking
    • Problems
    • Submit a solution
  • Editing profile - ask for password? - Nope
  • Submissions list: filters - most importantly 'final'
  • Implement some score revealing system
  • Removing user account: ask for password
  • Logs page
    • Acquiring more logs
  • Notifications
  • Judge server
    • Judge worker
    • Problem adding queue
      • Conflict submissions which are judged when problem is edited
    • Failed to open test - bug?
    • Fix submission queue bug
  • Submit solutions by pasting the code
  • UTC to local time
  • Add ignored submissions
  • Sandbox: add syscall name in the message (on forbidden syscall error)
  • Contests users
    • Participiants (especially in private contests)
    • Moderators
  • Submissions administration
    • Submission page
    • Submission list
  • Checker compilation report (only if compilation failed)
  • Sandbox: CONSUMED MEMORY
  • Rename config.conf to Simfile
  • Rewirte CppToHTML as library
  • Add compilation time limit
  • User submissions page
  • User profile page
  • Configuration files
  • Log files
  • Files page
  • Password reseting
  • noexcept everywhere
  • MySQL spaces in text fields are truncated - do something with this behaviour!
  • HTML space escaping bug - look at forms (via page source) in which field values contain a space
  • URI parser
  • Password salt
  • Ranking #7

404 should be fixed quickly

"Fix contest submit error 404 after refresh" has certainly a too low priority in the TODO list. When going back in history from submitting code, I get a 404 error. It is extremely annoying, because I'm often resubmitting code. Fix this asap pls!!1!.

The EDIT problem does not work.

Hello,
I installed the SIM on my server. I added a problem and would like to edit it. I can not do this, HTTP error code:

501 - This feature has not been implemented yet.

It's the same with submission and solutions. What to do?
Regards.
Sorry for my English.

Teachers cannot edit their accounts

Every time I try to update my teacher account I get an error: 'type: Type selects option to which you do not have permission'. This error occurs even if I don't change anything.
Screenshot 2022-10-25 at 20-04-15 User 419

Disregard non-printable characters

When reading outputs of programs disregard non-printable characters to prevents situations like the one in the picture from happening.
znaki

Problem with adding problem

Hello,

While adding the problem, I received the error:

Caught exception: execvp ('zip') - 2: No dry file or directory (thrown at src / lib / simlib / src / spawner.cc: 18)

In addition, I am asking for an example of a package.

Thank you and best regards.

SHA256

Write sim SHA256 implementation.

Update readme

  • add Arch installation instructions (package names, needed step after pacman'ing mariadb)
  • correct Ubuntu package name: mariadb -> mysql
  • make -j 4 -> make -j $(nproc)
  • explain what should one write when "It will ask for MySQL credentials" (or at least write the default options)
  • change git clone command to clone develop branch
  • server.conf file -> sim.conf

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.