Skip to content

Latest commit

 

History

History
193 lines (124 loc) · 8.85 KB

README.md

File metadata and controls

193 lines (124 loc) · 8.85 KB

Test-IGS (IGS)

Электронный тест по интерактивным графическим системам.

Содержание
  1. О проекте
  2. Руководство пользователя
  3. Руководство администратора
  4. Информация для разработчиков

О проекте

Электронный тест по интерактивным графическим системам.

Данный проект представляет собой простой динамичный сайт-тест на чистом PHP.

❗ Все данные на сайте недостоверны, а изображения и другие объекты, подверженные авторскому праву, не используются и не будут использованы в коммерческих целях, а только для обучения.

(back to top)

Руководство пользователя

Данный сайт является простым электронным тестом. Он предоставляет возможность проверить свои знания на данную тему.

Тест

Все вопросы выставляются администраторами, а порядок вопросов и вариантов ответов перемешиваются.

Результат прохождения

После успешного прохождения теста Вам будет показан результат и процент правильных ответов. Все результаты сохраняются и доступны к просмотру только администраторам и разработчикам.

(back to top)

Руководство администратора

Администратор может взаимодействовать с сайтом через PhpMyAdmin, используя данные для входа, предоставленные хостингом, или через разработчика. Сайт по своим данным почти везде редактируемый только через код.

Текст на сайте

Текст на сайте редактируется только через код, кроме вопросов теста.

Тест и вопросы

Через PhpMyAdmin администратор может редактировать вопросы и варианты ответов к ним. Вопросов может быть неогранниченное количество вопросов. Варинтов ответов может быть только 4 (один правильный).

Результаты пользователей

Результаты пользователей сохраняются в БД и их можно просмотреть через PhpMyAdmin. Будет показываться только процент правильных ответов и ip-адрес пользователя.

(back to top)

Информация для разработчиков

Концепция веб-сайта

Данный сайт разрабатывался на чистом 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-адрес пользователя.

(back to top)