Содержание
Электронный тест по интерактивным графическим системам.
Данный проект представляет собой простой динамичный сайт-тест на чистом PHP.
❗ Все данные на сайте недостоверны, а изображения и другие объекты, подверженные авторскому праву, не используются и не будут использованы в коммерческих целях, а только для обучения.
Данный сайт является простым электронным тестом. Он предоставляет возможность проверить свои знания на данную тему.
Все вопросы выставляются администраторами, а порядок вопросов и вариантов ответов перемешиваются.
После успешного прохождения теста Вам будет показан результат и процент правильных ответов. Все результаты сохраняются и доступны к просмотру только администраторам и разработчикам.
Администратор может взаимодействовать с сайтом через PhpMyAdmin, используя данные для входа, предоставленные хостингом, или через разработчика. Сайт по своим данным почти везде редактируемый только через код.
Текст на сайте редактируется только через код, кроме вопросов теста.
Через PhpMyAdmin администратор может редактировать вопросы и варианты ответов к ним. Вопросов может быть неогранниченное количество вопросов. Варинтов ответов может быть только 4 (один правильный).
Результаты пользователей сохраняются в БД и их можно просмотреть через PhpMyAdmin. Будет показываться только процент правильных ответов и ip-адрес пользователя.
Данный сайт разрабатывался на чистом Php 8.0 без использования сторонних библиотек. Некоторые методы решения каких-либо задач могут быть не совсем идеальными.
Сайт не защищён ничем. Нет даже csrf защиты. Хотя, может она здесь и не нужна.
База данных - MySQL 8.0
Единственная настройка конфигурации сайта нходится в файле /incs/functions.php
под комментарием // Settings
(включить/выключить показывание (выделение жирным шрифтом) правильные варианты ответа).
Сайт не имеет какой-либо "многоэтажной" структуры страниц.
Главная страница
Страница теста
Страница результата (только метод POST)
Сайт имеет довольно простую файловую структуру, так как не использует фреймворков и сторонних библиотек.
/incs (папка, содержащая в себе общие для всего сайта программные файлы)
├database.php
└functions.php
/snippets (в данной папке находятся шаблоны, повторяющиеся на страницах сайта)
└...
/static (папка для хранения статических файлов)
├/css
└...
├/img
└...
└/js
└...
index.php
README.md
result.php
test.php
-
PHP версии 8.0
-
База данных - MySQL версии 8.0
-
Фреймворки и библиотеки отсутствуют
Имя базы данных изменять можно, но конфигурацию сайта придётся изменить соответствующим образом в файле /incs/database.php
.
Именя таблиц изменению подлежат, но уже в файле /incs/functions.php
придётся изменить соответствующие функции create_requisition
или get_products
.
База данных - testigs
Таблицы - questions
, results
questions
- таблица вопрососв для теста:
id
- BIGINT - PRIMARY - AUTO_INCREMENT - Необходимый уникальный ключ id.question
- TEXT - utf8_general_ci - Текст вопроса.correct_answer
- TEXT - utf8_general_ci - Правильный вариант ответа.incorrect_answer1
- TEXT - utf8_general_ci - Неправильный вариант ответа 1.incorrect_answer2
- TEXT - utf8_general_ci - Неправильный вариант ответа 2.incorrect_answer3
- TEXT - utf8_general_ci - Неправильный вариант ответа 3.
results
- таблица результатов пользователей:
id
- BIGINT - PRIMARY - AUTO_INCREMENT - Необходимый уникальный ключ id.percent
- INT - Процент правильных ответов.user_ip
- VARCHAR(512) - utf8_general_ci - ip-адрес пользователя.