Сайт за тестване testhub · GitHub

За да направи сайта TestHub, която ви позволява да създавате и да вземат тестове. Те могат да бъдат използвани, например, учителите да провери знанията на студенти, работодатели, за да се отсеят кандидатите за едно свободно място в пазара за провеждане на интервюта.

  • Предложената технология. рамка (Symfony 2 (по-трудно, но по-интересно) или Yii2), MySQL, шаблон клонка, ORM Учение
  • време на изпълнение. всичко зависи от вас, но аз ще се гледа 4-6 седмици
  • Ниво. напреднал начинаещ
  • Необходими са знания. PHP, обектно-ориентиран, HTML / CSS, SQL, JS основи

За да се потвърди, че сайтът работи правилно, ние ще използваме автоматизирано тестване (имам урока по тази тема).

Тъй като проблемът е голям, може да искате да го направя парче. Можете да зададете реда на:

/ - Майн. Тя съдържа информация за услугата, въвеждане на ключ / регистрация и списък на някои от най-популярните в последния месец от тестове. изходни маркери за изпитване (нишки), броят на миналото и на броя, които са се опитали да се явя на изпит.

/ Тестове - списък тест. Той съдържа списък на всички тестове на сайта, а пейджъра картографиране. Кликвайки върху темата, можете да видите само изпитванията на обекта (в този случай тя ще бъде въведена в полето за търсене). Има поле за търсене, където можете да въведете темата или дума от заглавието на теста, за да се покаже само изпитванията по тази тема, или които съдържат думата в заглавието (можете да си помисля, да се търси не само в името, но и в описанието на теста). Поле за въвеждане поддържа автоматично довършване на имената в ред.

Tags (теми) - Можете да определите всеки, разделени със запетаи, в този случай всички въведени таговете са събрани в таблицата и се използват за довършване. Букви в името на маркера не е от значение, "Физика" и "Физика" - един маркер (може би те трябва насилствено превърнати в малки букви). Ако таговете са различни марки препинателни само едни и същи (таговете могат да съдържат само тире, запетая, точка (а не в края на името)).

  • един отговор от списъка
  • няколко опции от списъка
  • номер запис (посочва допустимата грешка)
  • Въвеждането на предсказуем текст (можете да изберете повече от един отговор, за да се счита за правилно)

На въпроса показва броя на точките за отговора, опции за отговор.

Въпроси могат да се пренареждат. Тъй като въпросите са големи и неудобни да ги изпълнява, тя може да бъде, когато се опитате да плъзнете въпроса за оттегляне на ляво намалява списъка с номера, на които можете да влачите и пускате на самия въпрос. Също така. можете да редактирате номера на въпроса, за да се даде възможност за тази цел.

Един от въпросите е в редактирането Redime и други въпроси, просто показват (с броя на точките, и маркирани верния отговор). Кликнете върху неактивни темата го поставя в режим на редактиране.

Препоръчително е да се провери коректността на терена, преди да изпратите формуляра към сървъра, например, ако не попълните името, след това кликнете върху бутона "Създаване на викторина" трябва да отидете до него и да покаже съобщение, в непосредствена близост до която е задължително поле.

За изисква регистрация Email (потвърждение не се изисква, но имейл за потвърждение, за да бъдат изпратени. За непотвърдени имейл не може да работи някои функции, като например изпращането на известия по електронната си поща), името (което се вижда на сайта) и паролата (не се допуска попадането в твърде прост като 123 456).

Тя трябва да осигури защита от груба сила опити парола ограничение от едно IP в единица време.

Също така, можете да влезете чрез социалните мрежи, първия вход е по същество запис.

Ако даден потребител се забравя паролата, той може да въведете имейл адреса и да получите на връзката. Потребител, който не разполага с парола и който премина през социалната мрежа, може по този начин зададете парола (освен ако, разбира се, той посочи мейл при регистрацията).

/ Тест / NNNN - на първа страница на теста. Тя показва името, описанието на теста, правилата на неговата доставка и кратки статистически данни, и по-долу е бутона "Старт тест". С натискане на бутона започва теста и времето.

/ Тест / NNN / въпрос - въпросът за тестовата страница. Това показва колко време остава, настоящият въпрос и даде възможност да му отговори. Можете да се върнете към по-горните въпроси. Вие не може да отговори на въпроса. Време за игра трябва да се поддържа от сървъра, то не може да бъде избегната.

/ Тест / NNN / резултат - резултатите от тестовете страница. Той показва броя на точките. Ако потребителят не е регистриран, ще бъдете подканени да въведете името, под което ще се вижда в таблицата с резултатите в учителя. Също така, има възможност за бързо zagregistrirovatsya.

За регистрирани потребители достъпен личния си профил, който можете да видите от тестовете, резултатите от тяхното преминаване, преминаването на други тестове. За нерегистрирани потребители са само на преминаване на тестовете те са създали специална връзка.

Резултати и списъци се показват в табличен вид. Таблиците могат да бъдат сортирани по наличните колони и филтрирани с низ за търсене.

Таблица може да се изнася (изтегляне) формати CSV, XLS, XML, JSON, TXT (обикновен списък текст). В този случай, те ще бъдат сортирани и филтрира по същия начин, както в таблицата са подредени на екрана (това трябва да се покаже предупреждението).

Ние трябва да мислим как да се информира потребителя относно опциите за филтриране. Можете да покажете намек, когато курсорът е в областта, можете да покажете "към днешна дата" бутон ", датата", поставете на съответните структури в областта.

Таблицата може да се сортира по дата, име, брой точки, броят на опитите.

Филтър може да бъде по име, дата, брой точки.

За да се направи тест за вноса от популярните формати и Moodle XML Moodle подарък. Moodle - е популярна платформа с отворен код за създаване на курсове за електронно обучение. Това ще ни позволи да примами учители, които вече са направили тестове на тази система.

Направете тест за износ формати Moodle XML, подарък DOC, TXT. Необходими са последните 2 в случай, когато учителят иска да изпрати тест пример за одобрение. Те трябва да са на името на теста, описание, времето тече и макс. Броят на точките, въпроси, отговори, правоъгълници за отговора на входно / избор (ако е за печат файл).

Можете допълнително да добавите Експорт в PDF формат.

Пробен печат. Учителят може да искате да отпечатате пробна за запълване на писалката. Трябва да се направи тест компактен (необходимо е да се пести хартия). Печат на страницата трабва да назове opichanie тест, време преминаване, максималният брой обекти, въпроси, опции за попълване.

Печат на резултатите от теста (или всяка друга маса от личния си профил). Необходимо е да се скрие допълнителни елементи на страницата, оставяйки само таблицата с данни. Опитайте се да го направи компактен, за да се избегне загубата на хартия. В тази таблица dlozhna бъдат сортирани и филтрирани според настройките (това трябва да е предупредително съобщение).

Уверете се, можете да редактирате името, имейла, промените паролата си.

Възможността за пост-тест, за да публикувате резултатите в социалната мрежа.

Съвети за изпълнение

Всички форми (и връзки като razloginivaniya) трябва да бъдат zaschisheny срещу CSRF знак.

Опитайте се да увеличите функциите на рамките, а не за написването на велосипед. Например, форми, решетки, защитата CSRF, миграцията на модела на базата данни.

На страницата за тест, списъкът на JQuery UI автоматично довършване, може да се използва за автоматично довършване (а може би и имената на изпитване?).

За да намерите тест е достатъчно да използвате SQL заявка като име като "% квантова%" И име като "%% физика". Ако тестът е малко, ако много (и искате да направите малко по-сложно), е необходимо да се направи пълно търсене на текст или да се свържете Сфинкса.

За да осъществи прехода на въпроса, който се редактира в нормално състояние може да се постигне с помощта на CSS, стил следващите полета и текстово поле в спящ въпрос, така че те изглеждаше като нормален текст.

Базата данни е логично да се направи една и съща маса за тестовете, по един за въпроси и може би още един за отговори и връзката им с външни ключове.

Отделна тема - регистрация. Ето някои функции заслужава да бъде разгледан:

Не казвай на лични жетони и приложения в код или довереник, че сте изхвърлени в хранилището.

Кога ще приложат вход чрез външна мрежа, опитайте се да направите всичко в обектно-ориентиран стил, например, HTTP-клиент да направи един обект, а не вграден в кода и пиша, така че нито една система за влизане на климата може да бъде преместен в друг сайт. След това се тества системата след това ще бъде много по-лесно.

Много услуги вече използват OAuth протокол (или OAuth 2), за да мине през тях, но всеки малко по-различно. Това прави живота по-лесен за разработчици. Ако социалната мрежа дава възможност за получаване на електронна поща, не забравяйте да го попита.

Позоваванията на описанието на API:

Също така, има услуги като ulogin, които predostalvyayut лесен вход чрез социалната мрежа чрез добавяне на скрипт на страницата. Не ги използвате. Първо, защото не са се научили нищо, и второ, те гледат на посетителите си (дори и ако те не се логнете) и зареден един куп съмнителни ifreymov в страница (да намеря сайт с такава система, и се убедете сами на инспектора).

трябва да изпратите HTTP-заявки за да взаимодействате с API. Използвайте някой готов библиотека, например тъпкане Sach популярен.

Във Facebook можете да пробвате да влезе през сайта, за да създадете специални фишинг потребителите в Интернет - това е удобно.

За да се покаже таблицата с резултатите от вашата рамка, със сигурност има нещо. В Yii има мрежа, в Symfony 2 има ли трета страна добавка.

Yunit- и интеграционни тестове

  • Уверете се, че броя на точките, по време на изпитването трябва да се разглежда като
  • Уверете се, че "най-популярната месец за" тестове се считат за правилно

Сайтът използва външни услуги (социални мрежи). Не е добре в тестовете за взаимодействие с тях без да има нужда да, трябва да се мисли за това как да ги замени (и те изпраща данни) са предварително подготвени свещи.

Все още не е направена. Ето контура:

Интересно е да се научите как да се направи на сайта може да се справи с голям поток от посетители? Тогава ние трябва да попълнят субекти на базата данни, и да го тествате с помощта на Apache Benchmark, или още по-добре, Siege. Може би някъде струва заявка за оптимизация, за да добавите някъде кеш.

Ако се чувствате тъжен гледа полупразна сайт или искате да проверите, и как той ще се държи, ако добавите много данни, можете да напишете генератор данни за създаване на учители, ученици, тестове, въпроси, отговори, резултати.

Виждам за тази опция:

Синтаксисът може да бъде променена. Трябва да генерира и да общуват помежду си на всички тези лица, в правилния номер.

Източници на данни за генератора:

имейл - можете да генерирате в fakenamegenerator или нещо себе си, като имена.

Опитайте се да направите списък (не знам в какъв формат - може да бъде TXT файл със стойностите по отделни линии или JSON) първичните данни и винт генератор. Много много не трябва да се притеснява, основното нещо, което бихме могли да zaplnit правдоподобно ценности база.