Skip to content

DhruvGheewala/Decoder

Repository files navigation

Decoder

Table of Contents

Decoder - A Competitive Programming Portal

  • Decoder is software that provides all help, tools and information related to competitive programming at the same place. Decoder contains an online compiler for some of the languages, allowing users to share code with others by sharing a link to the code. Along with the compiler it has a stress testing environment which uses system automated test cases for your code and checks efficiency and correctness of your code against these test cases. This software will also utilise APIs provided by some known competitive programming platforms to fetch the details about upcoming contests and Rankings of students in our college. It'll also contain resources (links and references) to learn competitive programming. Link to university's coding clubs contest (previous as well as upcoming if there are any).

Functionality

  • Register, Login / Logout
  • Compile and Run your Code
  • Nice Code editor
  • Code Sharing via link and Some of the permissions
  • Upcoming contest information
    • Using APIs from websites like codeforces.com, clist.by system will provide upcoming contest information. this information will contain time for contest, division of contest, link to contest etc.
  • Stress Testing
    • Stress testing is useful to find test cases on which user's code fails.
    • User will have to provide brute force code (always generates the correct output for test cases)
    • Efficient solution created by user ( code which may fail on some test case)
    • random test case generator file

Installtion

# will download this repository locally
git clone https://github.com/DhruvGheewala/Decoder.git
(or manually download this project)

# will install all the dependencies for project
npm run install-dependecies
# Ignore this !!
# Make sure you have node(javascript), gcc(c), g++(c++), jdk(java) & python installed in your system / server (which will compile code).

Environment Variable Structure

PORT = *****
EMAIL_ID = *****
EMAIL_PASSWORD = *****
SECRETKEY = *****

# For local mongodb server
DB_PATH = *****

#For client host during development
CLIENT_HOST = http://localhost:4200 

# For hosted mongodb server
DB_NAME = ***** # optional
DB_PASS = ***** # optional

# Secrect keys given by API: https://www.jdoodle.com/
# Please set it before using application, otherwise cpp and java won't work
JDOODLE_CLIENT = *****
JDOODLE_CLIENT_SECRET = *****

How to run ?

# will serve the project
npm start