Coder Social home page Coder Social logo

codechefvit / quizzie Goto Github PK

View Code? Open in Web Editor NEW
46.0 6.0 36.0 49.45 MB

Open Sourced Quiz Portal which can be used for any event / competition with a custom leaderboard.

Home Page: https://quizzie.codechefvit.com

License: MIT License

JavaScript 86.61% HTML 6.83% CSS 6.56%
quizzie quiz open-source mcq answers questions events polls marks leaderboard

quizzie's Introduction

Codechef-VIT

Quizzie

Open Sourced Quiz Portal which can be used for any event.


DOCS

Features

  • Stats view for detailed examination
  • Secure and foolproof
  • Users can signup/sign in using Google to make the flow easier
  • Detailed ananlysis of quiz for both organizers and users

Screenshots

Project Screenshots


Project Screenshots


Project Screenshots


Project Screenshots


Project Screenshots


Project Screenshots


Project Screenshots


Project Screenshots


Project Screenshots


Instructions to run

$ git clone https://github.com/CodeChefVIT/quizzie
$ cd quizzie
$ npm install
$ npm run dev

Contributors

Jugal Bhatt

Jugal Bhatt (Insert Your Image Link In Src

Sarthak Bhardwaj

Your Name Here (Insert Your Image Link In Src

License

License

With โค๏ธ by CodeChef-VIT

quizzie's People

Contributors

akshatvg avatar anujkap avatar christianto88 avatar decipher07 avatar dependabot[bot] avatar diptochakrabarty avatar jugaldb avatar n0v0cain3 avatar navyaasharma avatar quizhpi avatar raysandeep avatar sarthakbh321 avatar snyk-bot avatar thamanmuthappa avatar vanshg395 avatar yashmeh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

quizzie's Issues

Something

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyVHlwZSI6IkFkbWluIiwidXNlcklkIjoiNWYxN2NlMDI3YTgyYzQ1Mjg0YWI5N2Q4IiwiZW1haWwiOiJqdWdhbGJoYXR0M0BnbWFpbC5jb20iLCJuYW1lIjoiSnVnYWwgQmhhdHQiLCJtb2JpbGVOdW1iZXIiOjk5OTk5OTk5OTksImlhdCI6MTYwMDM3OTQyMywiZXhwIjoxNjAwNDY1ODIzfQ.OFwffhdTthKTETr4G3VXNbkXF6wdlFD1rKCc_vN88KU

[Fix]: Allow for increased time limit for quizzes

Currently only allows a 60 mins test time-limit

image

Issues

  • Blocks creation of bigger time span tests or exams (3 hours - 180 mins)
  • I suggest a high time-limit to mitigate unnatural values - rather than a 60 mins bar

SignUp API Exploit Add reCaptcha to register API

Using the POST curl request anyone can flood the database with redundant info and make the site status to 500,0
So it would be better to add google ReCaptcha to register API to avoid any automated signups.

POC ( Proof Of Concept )

sudo curl -d "name=NAME&email=[email protected]&password=YOURPASSWD&mobileNumber=9999999999" -X POST https://quizzie-api.herokuapp.com/user/signup

A simple python script can be made to pass the parameter to the above Linux shell command and flood database.

OUTPUT LOG

ubuntu@ip-1XX-XX-X-XXX:$ sudo nano CChefAPISignUPCall.sh
ubuntu@ip-1XX-XX-X-XXX:
$ ./CChefAPISignUPCall.sh

{"message":"user created","userDetails":{"userId":"5f5de327e1a87300175828bf","email":"[email protected]","name":"admin","mobileNumber":9999999999}}

ubuntu@ip-172-31-4-127:~$

Adding ReCaptcha2.0 would resolve this conflict

Add functionality for adding quiz images

By quiz images i mean the overall quiz image not images within the question, this can act as a thumbnail for the quiz ,both frontend and backend changes would be required.

handleDelete for quiz missing captcha

const handleDelete = async () => {
let token = localStorage.getItem('authToken');
let url = http://localhost:8000/quiz/delete;
let captcha = await executeRecaptcha('quiz_delete');
let data = {
quizId: quizId,
captcha: captcha,
};

try {
  await axios
    .delete(url, {
      headers: {
        'auth-token': token,
      },
      data: data,
    })
    .then((res) => {
      setRedirect(true);
    });
} catch (error) {
  console.log(error);
}

};

message handling

On organiser or student login if forgot password is used and unregistered email id is provided , error message returned is

' Reset code could not be sent'

We should return a meaningful message instead which tells user to register themselves first

Verify Email not working

If user registers without google verification, the email with berification code is recieved, but things don't proceed after entering the vode..

Linting for backend

Issue

The backend code does not have any clear formatting .

Fix

Add Eslint + Prettier for better code formatting.

Expected behaviour :be

Auto lint and format on commit

References ๐Ÿ“–

EsList and Prettier

Credentials

Hi all,

I would like to know how I change the credentials so that when I use the login it does not redirect me to your login.

thx

Error when starting (Ubuntu 22.04)

I followed the "Instructions to run" but get an error:

root@server:~/quizzie# npm run dev

[email protected] dev
nodemon app.js

[nodemon] 2.0.20
[nodemon] to restart at any time, enter rs
[nodemon] watching path(s): .
[nodemon] watching extensions: js,mjs,json
[nodemon] starting node app.js
/root/quizzie/node_modules/passport-oauth2/lib/strategy.js:87
if (!options.clientID) { throw new TypeError('OAuth2Strategy requires a clientID option'); }
^

TypeError: OAuth2Strategy requires a clientID option
at Strategy.OAuth2Strategy (/root/quizzie/node_modules/passport-oauth2/lib/strategy.js:87:34)
at new Strategy (/root/quizzie/node_modules/passport-google-oauth20/lib/strategy.js:52:18)
at Object. (/root/quizzie/Backend/api/config/passport-setup.js:27:14)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object. (/root/quizzie/app.js:5:23)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47
[nodemon] app crashed - waiting for file changes before starting...

Whan am I doing wrong?

[Feature]: Support for image type as question

Currently supports only text as question description.

Proposed

  • Option to add image as a question from clipboard directly
  • Option to import image-file as a question
  • Allow markdown - if you feeling fancy

image

P.s Liked your repo so much, it made me create a github account!

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.