Here's a samll quizzing portal where to put it simply, users can add (and by extension edit and delete) questions and answer questions published by others. There's a leaderboard and a couple of extras to make this (more) fun.
###What I used
- Client Side
- HTML (with the phpti templating engine)
- CSS
- Javascript/JQuery
- Server Side
- PHP+MySQL (LAMP)
###Server Routes
- Open to all
/
,/home
(A simple homepage)/login
(The login page)/register
(The registration page)/leaderboard
(The leaderboard)/user
(A page to choose which user profile to view)/user/{username}
(View {username}'s profile)
- Protected (Only logged in users)
/submit
(View, edit or delete previously submitted questions or add new ones)/quiz
(Answer all questions put up by other users)/quiz/{category}
(Questions pertaining to {category})
###Build Instructions
- Clone the repo onto a subdirectory of your base apache server directory.
- Theres a .htaccess file for neat routes. To enable it,
- LAMP: Open the terminal and
sudo nano /etc/apache2/sites-available/default
- Once inside that file, find the following section, and change the line that says AllowOverride from None to All. The section should now look like this:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
- Save the file and restart apache.
sudo service apache2 restart
- WAMP: Check out this stackoverflow answer
- LAMP: Open the terminal and
- Edit the config.php file. Write in your Username, Password and DBName.
- The database schema is given in the Database.sql file.
- Just open index.php and play around
###Links to Download additional software
- Server
- Here's a guide on installing the LAMP stack. Explained with much more clarity and patience than I can muster.
- External modules
- The table sorter Jquery Plugin. A simple client side tool to make tables sortable.
- The highcharts Jquery plugin. A jquery plugin to make the use of Highcharts, an interactive javascript chart generating library, easier.
- The phpti templating engine that helps make reusable templates vary easily
###Screenshots