Skip to content

HackaIran/HackaPanel

Repository files navigation

Hacka{Iran}'s Contest Panel

Build Status License Gitter Tweet

Compete with others in style!

HackaPanelV3

HackaPanel is a Node application which provides competition system over Hacka{Iran}'s contests with the vast variety of supported languages and features.

Table of Contents

Features

  • Highly Customizable questions.
  • Supports Variety of languages (Javascipt, C++, PHP, Python, ... ).
  • Real-time competition system.
  • Multi-Level test cases generation.

Getting Started

Pre-Installation

  1. Download and Install Node.js
  2. Download and Install MongoDB

Installation

Lets start by installing npm packages on the same route as 'app,js' issue:

> npm install

Then we need to setup the Database using the following commands:

> mongo
MongoDB shell version v3.6.3
connecting to: mongodb://localhost
> use hacka
switched to db hacka

Moving on to installing the Webpack we issue:

> npm install -g webpack 

⚠️ Note: You may need root access, use sudo if installation failed with the error npm ERR! Error: EACCES: permission denied

Rename and remove ".sample" from the files under contest/ like below:

On HackaPanel/ issue:

> webpack

You're Done! Run the server using the following command:

> nodemon app.js

Configurations

Database

You can touch "db" property in "hacka.config.js" like below:

host: 'mongodb://localhost/', // Change it based on your mongodb config
dbname: 'hacka' // Change it if you wish to customize it (Default one is OK!) 

Time

You can touch "time" property in "hacka.config.js" like below:

// You can edit the start time and end time for the duration in between
time: {
	start: {
		hours: 16, // Start time hour
		minutes: 30, // Start time minute
		seconds: 0 // Start time second
	},
	end: {
		hours: 18, // End time hour
		minutes: 10, // End time minute
		seconds: 0 // End time second
	}
}, 

License

Copyright (c) 2017 HackaIran All rights reserved.

This work is licensed under the terms of the MIT license. For a copy, see https://opensource.org/licenses/MIT.