Git Product home page Git Product logo

enigma's Introduction

Enigma (Programming Competition System)

Dependency Status devDependency Status License: GPL v3

Enigma is an automated system to upload, compile and judge players submissions of programming problems. Currently, it's supporting Java, Python, and C for solving problems.

Setting up the database

We are using postgres for storing data.

(For MacOS or Linux Users)

  • First install Homebrew
  • Now install and configure Postgres using Homebrew
$ brew install postgres
$ brew services start postgres
$ psql -d postgres -f "/path/to/seed.sql"

you'll find seed.sql file inside the project's folder.

(For Windows Users)

  • Download EnterpriseDB installer for you version of windows.
  • Run the installer and go through the setup proccess.
  • Before finishing it will ask you if you want to download additional tools, uncheck the box (if you don't need it).
  • Launch SQL Shell (psql).
Server [localhost]: localhost <You can just click Enter>
Database [postgres]: postgres <You can just click Enter>
Port [5432]: 5432             <You can just click Enter>
Username [postgres]: postgres <You can just click Enter>
Password for user postgres:   <The password you wrote during the setup proccess>
postgres=# \i '/path/to/seed.sql'
Password for user admin: hadi
  • you'll find seed.sql file inside the project's folder.
  • Note that you have to use 'normal' slashes ( / ) instead of backslashes ( \ ).

Installing and setting up the project

  • Install and Setup Nodejs
  • Go to the enigma folder in terminal and execute these commands:
$ npm install
$ npm run build
$ npm start

Usage

You can see the project now at http://localhost:3000

Things to do

  • Add new languages
  • Improve the new design
  • Make it mobile-friendly!
  • sanitize and validate players submissions
  • Make a proper authentication
  • Design database structure
  • Start using ESLint
  • Add form validations
  • Connect frontend with backend
  • A new design for the system
  • Create a structure for writing questions (independent from any language syntax)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.