Home

Awesome

Kurukshetra   Tweet

<p align="center"> <img src="/staticfiles/img/logo.png" alt="Kurukshetra"/> </p>

Github Release Version Github Release Version License Kurukshetra loves Open source Follow Kurukshetra on Twitter

Kurukshetra is a web framework that’s developed with the aim of being the first open source framework which provides a solid foundation to host reasonably complex secure coding challenges while still providing the ability to efficiently and dynamically execute each challenge on the basis of user input in a secure sandboxed environment.

Kurukshetra is composed of two components, the backend framework written in PHP, which manages and leverages the underlying docker system to provide the secure sandbox for the challenge execution, and the frontend, which is a user facing web app providing all the necessary controls, for the admin to host and modify the challenges , and the user to execute and view the result of each of his input.

Detailed Tool Documentation:

https://docs.kurukshetra.io

Installation

Supported Platforms

Kurukshetra has been tested both on Ubuntu/Debian (apt-get based distros) and as well as Mac OS. It should ideally work with any linux based distributions with PHP 7.2, MySQL and Docker (along with remote API enabled) installed.

Prerequisites:

There are a few packages which are necessary before proceeding with the installation:

Installing

Installing is as simple as moving the downloaded files into webroot:

git clone https://github.com/a0xnirudh/kurukshetra.git
cd kurukshetra
cp -r * /var/www/html/
chmod 755 -R /var/www/html
<p align="center"> <img src="/staticfiles/img/install.png" width="700"> </p>

Configuring Docker

Kurukshetra make uses of Dockers API's for running the user submitted code. A one time configuration is required before we can make use of the docker API's which is as follows:

Alternatively, you can just run python install.py from within the directory installation/optional which will go ahead and install Docker (if not installed already) and will configure the Kurukshetra docker image automatically.

Roadmap

The following are couple of ideas which we have in mind to do going ahead with Kurukshetra. If you have any ideas/feature requests which is not listed below, feel free to raise an issue in github.

Screenshots

  1. Challenge listing page:
<p align="center"> <img src="/staticfiles/img/challenge_listing.png" alt="Kurukshetra"/> </p>
  1. Challenge solving page:
<p align="center"> <img src="/staticfiles/img/challenge_solving.png" alt="Kurukshetra"/> </p>
  1. Admin portal (statictics):
<p align="center"> <img src="/staticfiles/img/admin_dashboard.png" alt="Kurukshetra"/> </p>
  1. Admin challenge edit/add challenges:
<p align="center"> <img src="/staticfiles/img/admin_challenge_page.png" alt="Kurukshetra"/> </p>

Video demo (Admin Functionalities)

<div align="center"> <a href="https://www.youtube.com/watch?v=yrfmyz3p9a4" target="_blank"><img src="/staticfiles/img/video_thumbnail.png" alt="Kurukshetra Admin functionalities"></a> </div>

Contributors

Awesome people who built this project:

Lead Developers:

Anirudh Anand (@a0xnirudh)
Mohan KK (@MohanKallepalli)

Project Contributors:

Arjun T U (@arjunkikz)
Durga Subramanian (@0xdug)
Ankur Bhargava (@_AnkurB)
Prajal Kulkarni (@prajalkulkarni)