paweln
15.12.2003, 17:37:09
Witam.
Mam do zrobienia system egzaminowania studentów OnLine. Może ktoś miał już z tym styczność i mi poradzi jak by to najlepiej rozwiązać. Czy na bazie SQL czy może na plikach. Nie chcę kodu źródłowego tylko zebym wiedzial jak to wizualnie ma wyglądać no i troszkę szczegółów technicznych. Nie wiem czy student ma sie sam zarejestrowac i pisac egzamin czy moze lepiej zeby jakas inna osoba wklepywala do bazy studentow a on sie tylko logowal i pisal egzamin. Czy z bazy SQL mozna losowac rekordy bez powtorzen z danej puli ? Domyślam się że logowanie ma być po nr indeksu, roku i czyms tam jeszcze? Za wszelką pomoc dzieki.
chfast
15.12.2003, 21:05:28
1. Baza użytkowników powinna być stworzona przez administratora, żeby nikt z zewnątrz nie miał dostępu do systemu - bo po co?
2. Od początku używaj bazy danych. Na plikach się wszystko pomiesza przy dużej ilości danych. W ogóle pliki są mało efektywne, trzeba się bawić w dodatkową implementacje ich obsługi.
3. Jeśli to ma być test to można zrobić bezpośrednio na stronie, jeśli jakieś dłuższe wypowiedzi to chyba lepiej, żeby student mógł sobie ściągnąć formularz, wypełnić na lokalu i odesłać (przez upload). Formularz XHTML na stronie jest o tyle niebezpieczny, że można przez nieuwage całego go wyczyścić - całą prace trzeba zaczynać od nowa. A z tego to się na pewno nikt nie ucieszy. Dlatego jeśli to ma być już koniecznie wykonywane "na odlogłość" to najlepiej podzielić egzamin na pojedyńcze pytania (skończysz jedno, dajesz dalej i pojawia się następne). Dodatkowo, żeby można było wrócić od dowolnego pytania przydałoby się wykorzystać sesje i umieszczać kolejne pytania (odobne formularze) na stosie.
Pamiętam, że kiedyś (dawno) był taki topic o formularzach na stosie w sesji (sprawa chyba dotyczyła jakiś formularzy ubezpieczeniowych -> php Pro).
paweln
16.12.2003, 10:47:03
Dzieki za wskazówki. Może ktoś jeszcze zechce się podzielić doświadczeniami.
zalew
16.12.2003, 11:41:44
1. oprocz powyzszego "bo po co" dodam: poczytaj przepisy o danych osobowych + o zakazie udzielania publicznej informacji o wynikach egzaminow
2. sql wiadomo
3. przy logowaniu dodac rekord z id sesji. ja proponuje podzielic to na etapy np po 5 pytan, trzymac dane caly czas w bazie (tzn co submit do nastepnego/porzedneigo etapu - update'owac), identyfikowane sesja - jesli zostalo juz pole wypelnione i submitowane to po prostu sie wyswietli z bazy $row[pytanie_8], jak nie to puste pole. zapobiegnie to 'zeby sie samo nie zczyscilo'
- co do pytan tekstowych... dac mozliwosc 'upload txt file' obok <textarea> i po sprawie wg mnie... koles bedzie sobie pisal na dysku plik, wrzuci i tyle.. pamietaj zeby to byl txt a nie word bo krzaki dostaniesz :) chyba ze chcesz osobne miejsca przeznaczac na uploadowane pliki ale to bez sensu wg mnie - po co robic zamieszanie i miejsce zajmowac, chodzi o tekst przeciez wiec mozna go wrzucic do texta...
- na wejsciu wyswietlic i dac studentowi zalecenie by zapisal id swojego wejscia (nie zapisze, wiec wyslij mu na mail :D), ze w razie zerwania polaczenia moze wrocic do czesciowo rozwiazanego testu.. zeby id bylo jeszcze bardziej unikalne daj np. session_id()."_".time()
- na wyjsciu test zostaje oznaczony jako rozwiazany zeby nikt nie wrocil przez przypadek
tyle co mi w sekunde wpadlo sorry ze chaotycznie ;)
pozdr
scanner
16.12.2003, 12:06:14
zalew: skoro zapisujesz rozwiązane pytania w bazie, to po co zapisywać jakieś iD na kartce u studenta?
Zerwano połączenie? No to logujemy się jeszcze raz i widzimy, gdzie ostatni save był.
Dodatkowo: polecam zastosowanie "czas na odpowiedż" oraz "blokowanie edycji odpowiedzi juz udzielonych".
zalew
16.12.2003, 12:40:54
fakt, zapomnialem ze jest logowanie wiec test sie moze sam zaladowac nie trzeba przepisywac id.. mea culpa :)
co do blokowania odpowiedzonych - po co? jak masz test na kartce to wyrywaja cie kartke po odpowiedzeniu na pytanie? takich testow, ze nie mozna sie cofnac mialem w zyciu moze ze 2, 3 i to nie na studiach...
jeszcze zeby nie sciagac mozna by pomyslec o jakims mechanizmie ktory na zdjecie focusa z sajtu da komunikat zeby nie scaigac i ze za drigim razem wywali :) np. sajt odpala we fullscreen i na zdarzenie wyjscia z okna lub proby zmiany wymiarow uznaje to za sciaganie? zapedzam sie juz - taki pomysl ;)
scanner
16.12.2003, 13:26:25
No tak, ale na teście masz jakiś czas na rozwiązanie go a potem "Prosze pańsrtwa, odkładamy długopisy". Tylko że mechanizm zliczania czasu powienien uwzględniać "utraty połączenia".
A swoją drogą.. Czytam pytanie "tracę połączenie", idę do encyklopedii, i dostaję Nobla
g0blin
16.12.2003, 17:48:37
Cytat
jeszcze zeby nie sciagac mozna by pomyslec o jakims mechanizmie ktory na zdjecie focusa z sajtu da komunikat zeby nie scaigac i ze za drigim razem wywali

np. sajt odpala we fullscreen i na zdarzenie wyjscia z okna lub proby zmiany wymiarow uznaje to za sciaganie? zapedzam sie juz - taki pomysl

Zawsze mozna skorzystac z drugiego komputera zeby sciagac
paweln
16.12.2003, 19:30:37
A moze tak byc, że jak odpowie prawidlowo to w bazie zwieksza o jeden jesli nie to zero i nie zwieksza. A na koniec testu na podstawie zdobytych punktow wystawia ocene ? I jeszcze jedno jak najlepiej zaprojektowac tabele w bazie dla pytan i odpowiedzi do testu. Załóżmy że jedno pytanie i cztery odpowiedzi i tylko jedna ma byc prawidłowa.
chfast
16.12.2003, 20:42:57
Cytat
A moze tak byc, że jak odpowie prawidlowo to w bazie zwieksza o jeden jesli nie to zero i nie zwieksza.
Ja bym zapisywał tylko wyniki, a dopiero po zakonczeniu egzaminu sprawdzal poprawność. Unikniesz niespodziewanych błędów (np. jak ktoś się cofnie do pytania, na które odpowiedział dobrze i zmieni odpowiedź na złą to trzeba mu będzie odjąć punktu - taka niepotrzebna zabawa: jeśli tak to odejmij, jeśli tak to dodaj, jeśli tak to nic nie zmieniaj - można się pogubić a tego przecież nie chcemy).
Pamiętaj, że jesteś częściowo odpowiedzialny za wyniki egzaminu.
Jeśli chodzi o tę sprawę ze ściąganiem to ja bym się w to nie pchał. JavaScript to nie jest najszczęśliwsze rozwiązanie. Kod można zawsze podglądnąć i wykorzystać dziury. Jak ktoś będzie chciał siągnąć to i tak ściągnie, a możesz wszystkim utrudnić życie.
paweln
19.12.2003, 19:02:47
Mam jeszcze jedno pytanko. Jak zrobić logowanie studentów? Czy nr indeksu i pesel wystarczy czy trzeba jeszcze cos dorzucić ? Tak zeby ktos sie pod niego nie podszył itp.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.