(currently only supports Python) Creates a problem judging platform for problems similar to CodeForces or Leetcode.
Better version of Online-Judge
View our self-hosted page: https://judge.codejoint.org/
NOTE: if you need any help installing the service, feel free to email us at codejointcrew@gmail.com, we are more than willing to help you through the step-by-step process if you need help intalling our service
-
You need to run this on Linux, so make sure you have Linux
-
Install isolate (make sure to install the service and run it from there or it won't work. You can find it by searching "isolate.service" on their github)
-
Install mongodb and install their system service as well, u need mongodb and mongo
-
ensure you have nodejs
-
Set up node by running
npm install -
Set up .env file, e.g:
PORT=3000
JWT_SECRET=[run node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"]
MONGO_URI=mongodb://localhost:27017/authdb
EMAIL_USER=(make your own email. This email is to send to other's email to verify. we use noreplycodejoint@gmail.com)
EMAIL_PASS=[enable 2FA on google, next make new app password in security settings, use that here. It should look like "aaaa bbbb cccc dddd"]
BASE_URL=url for your webpage, e.g localhost:3000
TRUST_PROXY=number of proxies you're using. you can uncommment out the /ip endpoint in server.js to test it- Edit the home page so the "About" link and contact us banner reflects you (or leave ours there if you don't mind)
- Run
sudo npm startto initialize the server - [optional] if you want to just check out the submission functionality and don't feel like setting up the email verification system, then:
a. "sign up" on the frontend,
b. runmongosh "mongodb://localhost:27017/authdb"and thendb.users.find()
c. get your verificationToken, and go to [webpage]/verify/{verificationToken}/ i.e http://localhost:3000/verify/39rj84j9/
d. after verifying, login and use the website as normal.
Use the problem creator at [url]/admin/add-problem/. To add yourself as an admin, you will need to do some work with mongodb (see useful_commands.md)
Coming soon™
- Run
npm run docsto generate docs.
- Brian Dean for informing us of the sandboxing tool USACO uses (ioi isolate, open-sourced on github)
- thanks to ChatGPT for setting the Vibes ~~