PHP Test Platform is a full quiz-creation and testing web app: registered users can build subjects made up of five different question formats β multiple choice, true/false, dropdown, fill-in-the-blank, and matching β and share a public link so anyone can take the quiz and get scored instantly. It includes session-based authentication with multi-device session management and an AdminLTE-powered admin panel for managing subjects, questions, and results.
- Features
- Screenshots
- Demo Account
- Project Structure
- Requirements
- Installation Guide
- Technologies Used
- License
- Contributing
- Connect with Me
β Multiple choice β question with any number of options and one correct answer. β True / False β quick statement-based questions. β Dropdown β pick the correct answer from a select list. β Fill in the blank β free-text answer, matched case-insensitively. β Matching β pair a left-side term with its right-side value.
β
Every subject gets a clean, unique URL slug (e.g. /test.php?url=mathematics).
β
Anyone with the link can take the quiz β no account required.
β
Instant scoring with a percentage breakdown on submit.
β Signup/login with hashed passwords and CSRF-protected forms. β Persistent login via secure cookies. β Multi-device session tracking β see every device you're logged in on and revoke any of them.
β AdminLTE 3 dashboard with live stats (subjects, total questions, participants). β Create, edit, and delete subjects and every question type. β Review quiz results per subject, with participant name and score.
| π€ Username | π Password |
|---|---|
iqbolshoh |
Iqbolshoh$7 |
php-test-platform/
βββ login/, signup/, logout/ # Auth pages (signup/check_availability.php backs live validation)
βββ user/ # Admin panel (AdminLTE) β protected by auth.php
β βββ topics.php # Manage subjects (auto-generates the public URL slug)
β βββ test.php, true_false.php, dropdown.php,
β β fill_in_the_blank.php, matching.php # One CRUD page per question format
β βββ results.php # Per-subject quiz results
β βββ active_sessions.php # Multi-device session management
β βββ includes/ # Shared navbar, footer, css/js includes for the admin panel
βββ src/css/, src/js/, src/images/
βββ config.php # DB connection + tiny query-builder helper class
βββ database.sql # Schema + demo data (5 subjects, 25 questions, demo user)
βββ header.php, footer.php # Public site layout
βββ index.php # Public homepage
βββ test.php # Public quiz-taking page (/test.php?url=<slug>)
- PHP 7.4+ (with the
mysqliextension enabled) - MySQL / MariaDB
- Apache or Nginx (or PHP's built-in server for local testing)
git clone https://github.com/Iqbolshoh/php-test-platform.git
cd php-test-platformdatabase.sql creates the test_platform database, all tables, and seed data in one go:
mysql -u yourusername -p < database.sqlOpen config.php and update the credentials if they differ from the defaults:
define("DB_SERVER", "localhost");
define("DB_USERNAME", "root");
define("DB_PASSWORD", "");
define("DB_NAME", "test_platform");php -S localhost:8000Then open http://localhost:8000 in your browser (or deploy to Apache/Nginx as usual).
This project is open-source and available under the MIT License.
π― Contributions are welcome! If you have suggestions or want to enhance the project, feel free to fork the repository and submit a pull request.
π¬ I love meeting new people and discussing tech, business, and creative ideas. Let's connect! You can reach me on these platforms:



