Git Product home page Git Product logo

quizgenerator's Introduction

#QuizGenerator

Goal : Parse Latex files to extract particular \question command. Storing and organizing questions in a MySQL database. Display random quizzes with in a simple HTML form.

Screenshot HTML question

Screenshot HTML correction


This was a BSc. project in Computer Science at EPFL. It has been done for in the Security and Cryptography lab (LASEC) at EPFL.

The goal of this project is to exploit a large amount of Latex quiz archives. A quiz is a sequence of N multiple choices questions with exactly one right answer among M.

This project has two main parts. The first one consists in parsing a Latex file submitted by an admin and extracting quiz questions (title, answers and solution index) and organizing them in courses and chapters. The second one aims to display random quizzes to anyone who want to practice this material. A quiz is generated loading random questions from the database. It is displayed in a simple HTML form. Math rendering is done using MathJax library.

Demo

  • This is actually running on the LASEC website. Try the version used by EPFL students.
  • There exist a demo version on a private server (Warning : may be slow or down) with admin zone not protected. Feel free to have a look here.

Dependencies :

  • Apache web server
  • PHP5.0 or later
  • magic_quotes_gpc = off (PHP option)
  • MySQL server
  • MathJax 2.1 or newer (v2.1 included in project)

Important remarks

  • The authentication used is named Tequila. It has been developped by EPFL and is and open source authentication system under GNU GPL v2 license. You can learn more about it on the official website. If you are not hosting this project on the EPFL subnet (*.epfl.ch), the authentication will not work and give you a fake EPFL id (999999) without prompting any login or password. Feel free to modify the login.php page which is the only file creating and deleting PHP sessions.

INSTALLATION INSTRUCTIONS

Step 1

Be sure to have an Apache server with PHP5 or later with magic_quotes_gpc option set to off. You also need a MySQL server with login and password.

Step 2

Copy the folder web on your server.

Note : you can optionally remove the tests folder which isn't required to let the project work.

Step 3

Modify the file web/lib/param.inc.php by setting your username and password to access the MySQL server and set the right access to this file as low as possible (i.e. using chmod).

Step 4

Create a MySQL database named quiz_generator and execute in it the tables.sql file from this folder.

Note : you can choose another name if you change it in the options (see step 5).

Step 5

Choose the options as you want by adjusting values in web/lib/config.inc.php

Step 6

Protect your admin folder with any mechanism you want (i.e. using a .htaccess file)

Step 7

Delete or rename the index.php page in the web folder (link to user and admin part of the project).

Everything is now set to work properly, you can :

  • access the user part by going, with a browser, on choices.php

  • access the admin part by going, with a browser, on admin/


Project done by François Farquet in June 2013. © All rights reserved.

quizgenerator's People

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.