OpenRank is a free and open source alternative for websites like HackerRank, HackerEarth etc. Using this software, startups can self-host, create contests and evaluate potential candidates for job openings within their company.
Join the disucssion chatroom for this project on Discord : https://discord.gg/c7pU8Rw
You can run the apiserver by using the following command
openrank/manage.py runserver
To run frontend use the following commands in sequence
cd frontend
npm install
npm run dev
open http://localhost:8081/ once the server is started
You can run the unit tests by running following command in project folder. Make sure you install pytest module first.
python3 -m pytest
Vue.js
Django
- https://tutorial.djangogirls.org/en/
- http://www.obeythetestinggoat.com/pages/book.html#toc
- https://djangobook.com/
- https://www.youtube.com/watch?v=Ky59C5geOtg
- https://www.youtube.com/watch?v=yDv5FIAeyoY
- https://www.youtube.com/playlist?list=PLEsfXFp6DpzQFqfCur9CJ4QnKQTVXUsRy
Awesome beginners-friendly Projects : https://github.com/MunGell/awesome-for-beginners
The application will have different roles for different users. They are as follows :
- User with "creator" role can :
- Create a new contest
- Submit questions with inputs and expected output
- User with "Admin" role can :
- See the leaderborad (can also decide whether contestants can view or not)
- See all code submissions
- User with "Contestant" role can :
- Register and participate in contests
- Submit their code, and test for custom inputs
- Django (for backend)
- Vue.js (for frontend)
- Docker containers (for testing the submitted code)
- Celery (distributed computing)
- Host on personal server or cloud
- Create a contest:
- Provide contest name and other details (Description, Guide, Rules, FAQ, Criteria etc)
- Add questions (Challenge name, score, description, sample_input, sample_output, testcases)
- Share link generated
- Participate in contest:
- Go to link generated for the contest
- Register with required details and login
- Go through questions and submit code
- Test the code with sample inputs
- Test with custom inputs (optional)
- Submit for evaluation with all test cases
- Super easy to deploy to any cloud provider (eg. AWS, AZURE, GCP) or even local servers
- It's free. Small companies can use it to conduct coding interviews
- Scales really well (automatic evaluataion of code without manual intervention)