Vina Online Exam System

What is "Vina Online Exam System" or VOS ?

- Vina Online Exam System is a web script which written by CodeIgniter framework, use MySQL for storing all related data.

- It uses Twitter bootstrap v3.x for enhancing GUI and supporting responsive design and JQuery AJAX to interact with backend.

- The main purpose of this script is for creating online exams and practices.

- Users all over the world can take free and paid exams to get some certificates and improve their knowledge with free practices.

- Finally,after finish exams,they can view results, even corrects answers and share their best results with friends on Facebooks,Twitter, Google Plus... Moreover, they can download certificates.

- There are many more exicting features,you can discover these features later.

Main features

- Support unlimited questions and answers

- Support 5 types of question:

+ One answer (single choice) question

+ Multiple answer (multiple choices) question

+ True/False question

+ Fill in the blank question

- Support displaying picture, audio, video in question

- Support TOEIC exam format

- Free and paid exam (paid exam via Paypal)

- Support view exam's result in website and via Email

- Share exam's result via social networks like Facebook, Twitter, Google+, Pinterest

- Download exam's certificate of website (PDF format)

- Support multilingual

- Support responsive design

- Support rich features for administrator.They are:

+ Users management (create,insert,update,delete, login)

+ Categories management (supports multiple-level categories)

+ Question management (supports 5 types of question with audio,video for each question )

+ Papers management (a paper is a set of questions,which will used for creating an exam or practice)

+ Exams management (admin can create,update, delete an exam, assign users to take exam)

+ Practices management (like Exam but pratice is created for pratising, improving,revising knowledge purpose)

+ Exam's Parts management (for TOEIC exam)

+ Exam's Groups of Question management (for TOEIC exam)

Browser support

Since Vina Online Exam System is built on Bootstrap 3 framework, it supports the same browsers as Bootstrap.

Requirements

For VOS can run on your host,you need :

  • PHP 5.x +
  • CodeIgniter 2.x +
  • PHPmyadmin
  • MySQL
  • Facebook,Google+, Pinterest account
  • Paypal account
  • Web email account

How to setup VOS on your server

- Step 1: Upload VOS script to your host.

+ For example: after extract VOS zip file, a folder may be "vos_ci"

+ Upload this folder "vos_ci" to your host (inside public_html folder or something else)

- Step 2: Create a database on your host , run all scripts in vos.sql in folder database inside folder "vos_ci" to create all tables and necessary data for VOS can run.

- Step 3: Open config.php in folder application\config inside folder "vos_ci"

+ Find this content : $config['base_url'] = 'http://localhost:8080/ci/';

+ Replace 'http://localhost:8080/ci/' with your host URL, may be 'http://yourdomain.com/vos_ci/'

- Step 3: Open database.php in folder application\config inside folder "vos_ci"

+ Find these content :

                            $db['default']['hostname'] = 'localhost'; 
                            $db['default']['username'] = 'root'; 
                            $db['default']['password'] = 'root'; 
                            $db['default']['database'] = 'exam'; 
                        

+ Replace with your created database information

- Open config.php and change needed information below:

                            /* --- Facebook -------------- */
                            $config['facebook_app_id'] = '1590936741137031ddd';
                            $config['facebook_app_secret'] = 'b4bff590b88445368c922bea23fee404xx';
                            $config['facebook_callback_uri'] = 'auth/facebook_callback';

                            /* --- Twitter -------------- */
                            $config['twitter_app_id'] = 'my8ga2JUVlWYqX5RD8keZzYaCddd';
                            $config['twitter_app_secret'] = 'Be3OubtcwtcvYGtGgtIG263emp9YZYebYHTk8vAri8VbUR4E3Ndd';
                            $config['twitter_callback_uri'] = 'auth/twitter_callback_handle';

                            /* --- Paypal -------------- */
                            $config['paypal_mode'] = 'sandbox'; // Paypal mode: 'sandbox' : for developer test or 'live' for real payment
                            $config['paypal_api_user_name'] = 'vxxx-facilitator_api1.gmail.com'; //PayPal API Username
                            $config['paypal_api_password'] = 'XABCMdddd3DM5NPM7Q2D'; //Paypal API password
                            $config['paypal_api_signature'] = 'AFcWdddxV21C7fd0v3bYYYRCpSSRl31AQh4.5npEJPFUcI3cjhddfkURRdd'; //Paypal API Signature
                            $config['paypal_currency_code'] = 'USD'; //Paypal Currency Code
                            $config['paypal_return_url'] =  'user/buy_exam'; //paypal return URL
                            $config['paypal_cancel_url'] = 'user/buy_exam'; //paypal cancel URL
                            $config['paypal_total_tax_amount'] = 2.58; //paypal total tax amount
                            $config['paypal_handling_cost'] =  2.00; //Handling cost for this order.
                            $config['paypal_shipping_insurance_cost'] =  1.00;  //shipping insurance cost for this order.
                            $config['paypal_shipping_discount_cost'] =  -3.00; //Shipping discount for this order. Specify this as negative number.
                            $config['paypal_shipping_cost'] =  3.00; //Although you may change the value later, try to pass in a shipping amount that is reasonably accurate.

                            /* --- Web's email -------------- */
                            $config['web_smtp_server'] =  "xxx.yyy.com";
                            $config['web_smtp_port'] = 465;
                            $config['web_email_user_name'] = "youremail@yourhost.com";
                            $config['web_email_password'] = "yourpass";

                            /* --- Gmail's email -------------- */
                            $config['gmail_smtp_server'] = "smtp.gmail.com";
                            $config['gmail_smtp_port'] = 465;
                            $config['gmail_email_user_name'] = "youremail@gmail.com";
                            $config['gmail_email_password'] = "yourpass";

- Step 4: Access home page at URL: 'http://yourdomain.com/vos_ci/auth/home_page'

- On home page,fill informaton on login form to login

- There are two roles : Administrator and User

- Login as administrator: user name/password = admin/123456

- Login as user: user name/password = test1/123456

VOS's version history(change log)

Version 1.1 (last updated on July, 31st 2016)

1. Add question type “match question”

2. Show correct answers on practice test

3. Show explanation for question

4. Search question, search group of question

5. Statistic exam, practice

User guide

1. Home page

= Access homepage at this link: http://yourdomain.com/your_hosting_foldername/auth/home_page

2. Create an account

- Enter needed information to create an account on VOS

- User name,email and password is required for login, especially you need to fill your correct email to receive your result via email

2. Login

- Use user name or email to login

- If you don't have a website's account ,you can use your social network account like Facebook, Twitter to login

- In case you want to remember your login information for auto login the next times,you can choose Remember me

- Sometimes, you may forgot your password, don't worry, you can recover your password by click on the link "Click here" in this form.

3. Recover password

- Enter your email, after click Send button, VOS will send you an email, guide you how to reset password.

- Now, read mail and click on the link to reset your password

-Enter your new password. Click on Change button, now you can login with new password.

4. Dashboard

- After login, admin can see the dashboard

5. Update profile

- You can update your profile by changing some information and click Update button

6. View list of user

- Admin can view list of user by clicking on link Manage users on the left menu.

- Admin can also update,delete,block a user.

6. Manage category of question

- Admin can view list of category by clicking on link Manage categories on the left menu.

- Admin can also update,delete,block a category.

- VOS supports multiple-level category.

7. Manage question

- Admin can view list of question by clicking on link Manage questions on the left menu.

- Admin can view list of question by clicking on link Manage questions on the left menu.

- You can use picture or audio or video with each question

- To use picture you can upload picture to host or use an exist picture's URL.

- Support audio format : .JPG | .PNG | .GIF | .BMP

- To use audio/video you can upload audio/video to host or use an exist picture's URL.

- Support audio format : .MP3

- Support video format : .WEBM | .OGG

- VOS support 5 question types:

+ One answer (Single choice)

+ Multiple answers (multiple choices)

+ True/False

+ Fill in the blanks

+ Match question

+ One answer (Single choice)

+ Multiple answers (multiple choices)

+ True/False

+ Fill in the blanks

+ If you use Fill in the blanks, the question title must contains at least one string "_____"

+ This string "_____" is used to mark position of blank content

+ Match question

8. Manage papers

- Paper is a set of questions, you can choose many questions from many different categories.

- Admin will use these papers to create exams

- Paper has a name, description , passing score and time.

- Passing score will determine the threshold you need to pass an exam (caculate by percentage %)

- Time is needed in the case you want to limit the time for taking an exam (caculate by minutes)

- Admin can view list of papers, create,update, delete a paper

9. Manage exams

- What is an exam ?

- Exam is a set of questions (paper) and list of users who can take it.

- For simply, exam = paper + users

- There are two kinds of exam : Free and Paid exam.

- In case of paid exam, the user need to pay a fee (paid via PayPal)

Besides support normal exam like other website,VOS also support creating and taking an TOEIC exam

For normal exam,you need to do following steps to create :

Step 1: Create list of questions

Step 2: Create a paper and choose all questions for this paper

On list of paper,click on Manage questions button, go to Choose question for paper page.

There are two tab : Questions in paper contains list of paper's questions and tab Question bank contains all questions in database.

Click on tab Question bank ,choose question you want to add for paper by clicking on button +

Step 3: Create an exam, assign this paper to exam, choose list of user who can take this exam

Click on Manage users button, go to Choose user for exam page

There are two tab : Users in exam contains list of users allowed to take exam and tab List of users contains all users in database.

Click on tab List of users, choose user you allow to take on exam by clicking on button +

Step 4: User login, choose exam and do it

For TOEIC exam,you need more complicated steps to do:

Step 1: Create list of questions (TOEIC has 200 questions)

Step 2: Create parts for TOEIC (TOEIC has 7 parts : part 1 to 4 for listening and part 5 to 7 for reading and comprehension).

Click on link Parts on the left menu:

Click on Create part button , a popup will display:

- Fill information, click Save button to create a part

Step 3: Create groups of questions

TOEIC has 7 parts ,each part has many questions, in some parts some questions are grouped into one, so you need to create groups of question

For easily management, each part I created many groups of question, a group of question can contains one or many questions

Click on link Group of questions > Create group on the left menu

Choose what part and paper this group belong to, click Save changes button to create a new group of question.

Step 4: Create a paper

Step 5: Assign 7 parts to this paper

Click on Manage parts button on List of paper page.

There are two tabs: Paper's part contains all parts of paper and All parts contains all parts in database.

On tab All parts, choose part for paper by clicking on + button.

Step 6: Assign groups of question to each part

Step 7: Choose list of question for each group

Click on Manage group of questions button ,go to Group question of part page

Click on Manage questions button,go to choose question for group page

There are two tabs: Questions in group contains all questions of group and Question bank contains all questions in database

Click on tab Question bank ,choose question and click on + button to add to group.

Step 8: User login, choose exam and do it

Taking an exam

Login as a user.

Click on Exams link on the left menu

Choose an exam, click on Take exam button

All information of exam will display, when you are ready ,click on Start button to start doing exam

On the screen,you can see the question and all answers, choose the correct answer and click button Next to do the next question

In the case you want to finish exam, click on Finish button

On the screen,you also see the remaining time of exam, current question you are doing and total of questions of exam

Questions may have picture or audio/video

After finish exam, user can see the result:

User can share result via social network like Facebook, Twitte, Google+, Pinterest:

User can also download website's certificate when pass exam

Toeic exam is similar to normal exam but it has two areas,left area and right area

Admin can view statistic of exam, practice:

Left area: display information of part or group of question

Right area: display detail information of question,answers

User can view detail of his/her answers

Taking a practice test

Taking a practice test is similar taking an exam, but there are some differents:

+ Practice test does not have a timer

+ Pratice test is free (exam can have paid exam)

+ Practice test can do any questions at any time (in exam ,when you choose answer and click next button, you can not return previous questions and choose another answers)

User can show correct answers and explanation: