#PROBLEM STATEMENT ----> online_judge

#CREATE YOUR NewsAPI.org API KEY and paste it in public/js/jnews.js file at the mentioned position

#CREATE YOUR GITHUB CLIENT_ID and CLIENT_SECRET and paste it in public/js/jnews.js file at the mentioned position

##http://localhost:3000/auth/github/redirect" <--- ONLY MENTION THIS REDIRECT URL WHILE CREATING THE CLIENT_ID

#RUN THE FOLLOWING BELOW COMMAND IN THE TERMINAL IN YOUR PROJECT DIRECTORY

npm init npm install body-parser compile-run connect-flash cookie-parser ejs express express-fileupload express-session fs-extra memorystore mysql node-cron nodemailer path unzip

DATABASE SCHEMA

TABLES:-

admin | CREATE TABLE admin ( id int(3) NOT NULL AUTO_INCREMENT, name varchar(50) NOT NULL, password varchar(40) NOT NULL, email varchar(50) NOT NULL, username varchar(30) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

chat | CREATE TABLE chat ( sender_id int(6) NOT NULL, receiver_id int(6) NOT NULL, message tinytext NOT NULL, date_time datetime DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=latin1

contest_details | CREATE TABLE contest_details ( contest_id int(6) NOT NULL AUTO_INCREMENT, user_id int(6) NOT NULL, contest_name varchar(30) NOT NULL, start_date date NOT NULL, start_time time NOT NULL, end_date date NOT NULL, end_time time NOT NULL, org_type set('school','company','non-profit','other') NOT NULL, org_name tinytext NOT NULL, date date NOT NULL, PRIMARY KEY (contest_id) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 |

contest_logins | CREATE TABLE contest_logins ( contest_id int(6) NOT NULL, user_id int(6) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1

contest_new_problems | CREATE TABLE contest_new_problems ( problem_id int(6) NOT NULL AUTO_INCREMENT, contest_id int(6) NOT NULL, problem_name varchar(30) NOT NULL, difficulty set('easy','medium','hard') DEFAULT NULL, subdomain set('strings','sorting','search','arrays','graph','greedy','dp','bitman','game','recursion','algorithm','np') NOT NULL, time_limit float NOT NULL, memory_limit int(3) NOT NULL, problem_statement text NOT NULL, input text NOT NULL, constraints text NOT NULL, output text NOT NULL, sample_in text NOT NULL, sample_out text NOT NULL, explanation text NOT NULL, date date NOT NULL, status set('1','0') NOT NULL, PRIMARY KEY (problem_id) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

contest_old_problems | CREATE TABLE contest_old_problems ( contest_id int(6) NOT NULL, problem_id int(6) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1

contest_signups | CREATE TABLE contest_signups ( contest_id int(6) NOT NULL, user_id int(6) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1

contest_submission | CREATE TABLE contest_submission ( problem_id int(6) NOT NULL, contest_id int(6) NOT NULL, user_id int(6) NOT NULL, datetime datetime NOT NULL, status set('AC','WA','TLE','RE','CE') DEFAULT NULL, solution text NOT NULL, time float NOT NULL, memory float NOT NULL, language set('c','cpp','csharp','golang','java','javscript','python2','python3','ruby','rust') DEFAULT NULL, id int(6) NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1

editor_submission | CREATE TABLE editor_submission ( user_id int(6) NOT NULL, solution text, language set('c','cpp','csharp','golang','java','javascript','python2','python3','ruby','rust') NOT NULL, problem_id int(6) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1

followers | CREATE TABLE followers ( follower_id int(6) NOT NULL, following_id int(6) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1

friend | CREATE TABLE friend ( friend1 int(6) NOT NULL, friend2 int(6) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1

otp_table | CREATE TABLE otp_table ( username varchar(30) NOT NULL, otp int(4) NOT NULL, datetime datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1

pending_friend | CREATE TABLE pending_friend ( friend1 int(6) NOT NULL, friend2 int(6) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1

problems | CREATE TABLE problems ( problem_id int(6) NOT NULL AUTO_INCREMENT, user_id int(6) NOT NULL, problem_name varchar(30) NOT NULL, difficulty set('easy','medium','hard') DEFAULT NULL, subdomain set('strings','sorting','search','arrays','graph','greedy','dp','bitman','game','recursion','algorithm','np') NOT NULL, time_limit float NOT NULL, memory_limit int(3) NOT NULL, problem_statement text NOT NULL, input text NOT NULL, constraints text NOT NULL, output text NOT NULL, sample_in text NOT NULL, sample_out text NOT NULL, explanation text NOT NULL, date date DEFAULT NULL, PRIMARY KEY (problem_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1

submission | CREATE TABLE submission ( problem_id int(6) NOT NULL, user_id int(6) NOT NULL, date_time datetime DEFAULT NULL, solution text NOT NULL, time float NOT NULL, memory float NOT NULL, language set('c','cpp','csharp','golang','java','javascript','python2','python3','ruby','rust') NOT NULL, status set('AC','WA','TLE','RE','CE') DEFAULT NULL, id int(6) NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1

user | CREATE TABLE user ( id int(6) unsigned NOT NULL AUTO_INCREMENT, name varchar(50) NOT NULL, username varchar(30) NOT NULL, email varchar(50) NOT NULL, password varchar(40) NOT NULL, gender set('male','female','other') DEFAULT NULL, city varchar(20) NOT NULL, state varchar(20) NOT NULL, college varchar(100) NOT NULL, points int(6) NOT NULL DEFAULT '0', PRIMARY KEY (id), UNIQUE KEY username (username), UNIQUE KEY email (email) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1

verified_contest_details | CREATE TABLE verified_contest_details ( contest_id int(6) NOT NULL AUTO_INCREMENT, user_id int(6) NOT NULL, contest_name varchar(30) NOT NULL, start_date date NOT NULL, start_time time NOT NULL, end_date date NOT NULL, end_time time NOT NULL, org_type set('school','company','non-profit','other') NOT NULL, org_name tinytext NOT NULL, date date NOT NULL, username varchar(30) NOT NULL, password varchar(40) NOT NULL, description text NOT NULL, prizes text NOT NULL, rules text NOT NULL, scoring text NOT NULL, PRIMARY KEY (contest_id) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1

verified_problems | CREATE TABLE verified_problems ( problem_id int(6) NOT NULL AUTO_INCREMENT, user_id int(6) NOT NULL, problem_name varchar(30) NOT NULL, difficulty set('easy','medium','hard') DEFAULT NULL, subdomain set('strings','sorting','search','arrays','graph','greedy','dp','bitman','game','recursion','algorithm','np') NOT NULL, time_limit float NOT NULL, memory_limit int(3) NOT NULL, problem_statement text NOT NULL, input text NOT NULL, constraints text NOT NULL, output text NOT NULL, sample_in text NOT NULL, sample_out text NOT NULL, explanation text NOT NULL, date date DEFAULT NULL, PRIMARY KEY (problem_id) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1