WnSOJ is a platform where you can solve programming and math tasks, learn new algorithms and terms and find job. Platform includes testing system
, problems categories
, problems
, editorials and solutions
, submissions
, job search
, users
and statistics
.
- Download a project. To download required components, write in command line:
pip install -r requirements.txt
- Install g++ compiler, Python, Isolate; Work and Solve Online Judge uses isolate's cgroups, check its manual for setup.
- Launch server:
python3 main.py
- Open Main page
- Enjoy project! 😎
Platform provides an extensive set of olympiad programming tasks. To submit solution you need to be signed in system. You can register or sign in into existing account and submit solutions to problems.
System will automatically test your solution in isolated sandboxes provided by isolate and report verdict, max used time and max used memory.
Also, each problem has editorial and solution in C++ language.
Platform administrators can add new problems.
In the platform you can also find or publish/edit/delete job. There are 2 types of accounts:
- Common account - these users can find job and communicate with employers by email or phone.
Open job that you liked, read the description and if job suits you, communicate with employer by email or phone. - Business account - these users or companies can publish, edit or delete jobs, also find and communicate by email or phone with other users.
Publish job, edit it if it is need, and just wait until some qualified specialist will communicate with you by email or phone number.
In the profile, you can see user's username, email, phone number and statistics about problems: last 10 submissions and verdicts statistics.
Also you can change icon and password in your account page.
Also, platform is rich for API. In API you can request:
- users list and user by id
- jobs list and job by id
- submissions list and submission by id
- problems list and problem by id
API is located by url http://127.0.0.1:5000/api/v1
-
request: http://127.0.0.1:5000/api/v1/user/1
response:{ "user": { "email": "admin@admin.com", "fullname": "admin admin", "phone_number": "", "username": "admin" } }
-
request: http://127.0.0.1:5000/api/v1/submission/1
response:{ "submission": { "language": "GNU C++17", "memory": 2476, "send_time": "24/Apr/2021 22:06 UTC+6", "time": 233, "user": { "username": "admin" }, "verdict": "AC" } }
-
request: http://127.0.0.1:5000/api/v1/jobs
response:{ "jobs": [ { "title": "test job", "user": { "username": "admin" } } ] }
Following technologies and libraries were used to create this project:
Following components were used to create this project:
- Rakhmetulla Akram - spike1236
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
See LICENSE file for details.