/**
  * This function is called when a student starts the test.
  * If the test is already started, load_questions() should be called
  * else a new set of questions will be loaded into memory.
  * @return question
  */
 public function get_questions()
 {
     $quiz = Quiz::find($this->quiz_id);
     $this->my_questions = $quiz->generate_questions();
     $this->store_my_questions();
     return $this->my_questions[0];
 }
Ejemplo n.º 2
0
 /**
  * Responds to request to GET /question/add/{quiz_id}
  */
 public function getQuestionAdd($quiz_id)
 {
     $quiz = Quiz::find($quiz_id);
     $question = new Question();
     $question->quiz_id = $quiz_id;
     $question->save();
     return redirect('/question/edit/' . $question->id);
 }
Ejemplo n.º 3
0
 /**
  * Responds to request to GET /answer/add/{question_id}
  */
 public function getAnswerAdd($question_id)
 {
     $question = Quiz::find($question_id);
     $answer = new Answer();
     $answer->question_id = $question_id;
     $answer->save();
     return redirect('/answer/edit/' . $answer->id);
 }
Ejemplo n.º 4
0
 public function getSingleQuiz(Request $req, $id)
 {
     $quiz = Quiz::find($id);
     $question_ids = \DB::table('question_categories')->select('question_id')->where('quiz_id', '=', $id)->get();
     foreach ($question_ids as $question) {
         $options[$this->getQuestion($question->question_id)][] = \DB::table('options')->where('question_id', '=', $question->question_id)->select('id', 'option', 'question_id')->get();
     }
     // echo '<pre>';
     // print_r($options);
     // echo '</pre>';
     //return $options;
     return view('quiz')->with(['questions' => $options, 'quiz' => $quiz]);
 }
Ejemplo n.º 5
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $test = Test::create($request->all());
     $score = 0;
     $quiz = Quiz::find($request->get('quiz_id'));
     foreach ($quiz->questions as $question) {
         if ($request->has($question->id)) {
             $result = Result::create(['quiz_id' => $request->get('quiz_id'), 'user_id' => $request->get('user_id'), 'test_id' => $test->id, 'question_id' => $question->id, 'answer_id' => $request->get($question->id)]);
             $answer = Answer::find($request->get($question->id));
             if ($answer->correct) {
                 $score += 1;
             }
         }
     }
     $test->score = $score;
     $test->save();
     return redirect()->route('tests.result', $test);
 }
Ejemplo n.º 6
0
 public function updateQuiz(Request $request)
 {
     $input = $request->all();
     $quiz = Quiz::find($request->quiz);
     $quiz->name = $request->name;
     $quiz->save();
     foreach ($input as $key => $value) {
         if (substr($key, 0, strlen('question')) === 'question') {
             $segments = explode("_", $key);
             $question_id = str_replace("genre", "", $segments[1]);
             $question = Question::find($question_id);
             $question->text = $value;
             $question->answer = $input['answer_' . $question_id];
             $question->save();
         }
     }
     return redirect()->back();
 }
Ejemplo n.º 7
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     $quiz = Quiz::find($id);
     if ($quiz == null) {
         return response()->json(['error' => 'Quiz does not exist'], 404);
     }
     if ($quiz->owner_id != $this->user->id) {
         return response()->json(['error' => 'Not authorized'], 401);
     }
     Quiz::destroy($id);
     return response()->json(['message' => 'Quiz deleted'], 200);
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $quiz = Quiz::find($id);
     $quiz->user_id = Auth::user()->id;
     $quiz->subject_id = $request->subject_id;
     $quiz->title = $request->title;
     $quiz->quiz_time = $request->quiz_time;
     $formatedStart = DateTime::createFromFormat('m/d/Y h:i a', $request->start_date);
     $quiz->start_date = $formatedStart->format("Y-m-d H:i:s");
     $formatedEnd = DateTime::createFromFormat('m/d/Y H:i a', $request->end_date);
     $quiz->end_date = $formatedEnd->format("Y-m-d H:i:s");
     $quiz->num_of_questions = $request->num_of_questions;
     $quiz->num_of_easy = $request->num_of_easy;
     $quiz->num_of_medium = $request->num_of_medium;
     $quiz->num_of_hard = $request->num_of_hard;
     $quiz->save();
     return redirect('/dashboard');
 }
Ejemplo n.º 9
0
 public function index($id)
 {
     $quiz = \App\Quiz::find($id)->with('questions.answers')->firstOrFail();
     return $this->makeResponse('quiz.single', array('quiz' => $quiz));
 }
Ejemplo n.º 10
0
    $scoreCard = ScoreCard::find(1);
    // $answers = ScoreCard::find(1)->answer_questions()->get();
    $answers = $scoreCard->answer_questions()->get();
    echo $scoreCard->user->first_name;
    //Get Name
    echo "<br>";
    foreach ($answers as $a) {
        echo $a->id;
        echo "<br>";
    }
    echo "<br>";
    $users = User::all();
    foreach ($users as $u) {
        $s = $u->scoreCards()->get();
        echo "User: "******"<br>";
        foreach ($s as $c) {
            echo $c->id;
            echo "<br>";
            # code...
        }
    }
});
Route::get('/test/genQ', function () {
    return Quiz::find(2)->generate_questions();
});
//[OK]
Route::get('/{user}', function ($user) {
    return redirect('/');
});
Ejemplo n.º 11
0
 /**
  * Responds to requests to POST /quizzes/{id}
  */
 public function postQuizzesResult($id, Request $request)
 {
     // delete zero grade for validation
     $grade = Grade::where('quiz_id', $id)->where('user_id', Auth::user()->id)->first();
     $grade->taken = FALSE;
     $grade->save();
     $request->all();
     // get quiz for validation
     $quiz = Quiz::find($id);
     // custom message
     $messages = array('required' => 'You must answer all questions!');
     // make sure each question that is part of the quiz is in the request
     foreach ($quiz->question as $question) {
         $this->validate($request, ['answer_for_question.' . $question->id => 'required'], $messages);
     }
     // Grades quiz
     $correct_answers = 0;
     foreach ($request['answer_for_question'] as $answer) {
         $correct = Answer::find($answer);
         if ($correct->correct) {
             $correct_answers++;
         }
     }
     $score = $correct_answers / $quiz->numberOfQuestions() * 100;
     // store grade in grades_table
     $grade = Grade::where('quiz_id', $id)->where('user_id', Auth::user()->id)->first();
     $grade->grade = $score;
     $grade->taken = TRUE;
     $grade->save();
     return view('quiz.result')->with('quiz', $quiz)->with('score', $score);
 }
Ejemplo n.º 12
0
 /**
  * Get questions of a single quiz
  *
  **/
 public function getQuiz($id)
 {
     $question_ids = QuestionCategories::where('quiz_id', '=', $id)->get();
     $quiz = Quiz::find($id);
     return view('admin.single-quiz')->with(['question_ids' => $question_ids, 'quiz' => $quiz]);
 }
Ejemplo n.º 13
0
 /**
  * Responds to request to GET /delete/confirm/{id}
  */
 public function getConfirmDelete($id)
 {
     $quiz = Quiz::find($id);
     $quiz->delete();
     \Session::flash('flash_message', 'Quiz deleted!');
     return redirect('/edit/quizzes');
 }
 public function take_quiz()
 {
     $scoreCard = ScoreCard::find(session("scorecardID"));
     $questionNumber = 1;
     $first_question;
     if ($scoreCard->questions()->count() > 0) {
         $first_question = $scoreCard->load_questions();
     } else {
         $first_question = $scoreCard->get_questions();
     }
     $minutes = Quiz::find($scoreCard->quiz_id)->quiz_time;
     $date = new DateTime();
     $date->add(new DateInterval('PT' . $minutes . 'M'));
     session(['score_card' => $scoreCard, 'date' => $date, 'questionNumber' => $questionNumber]);
     return view('scorecard.take', ['question' => $first_question, 'selected_answers' => $scoreCard->selected_answers($first_question->id), 'date' => $date, 'questionNumber' => $questionNumber]);
 }
Ejemplo n.º 15
0
 public function QuizUpdate($id)
 {
     $question_ids = Request::input('question_id');
     $question_name = Request::input('question_name');
     $question_answers = Request::input('question');
     $correct_answers = Request::input('correct_answers');
     $quiz = Quiz::find($id);
     $quiz->quiz_name = Request::input('quiz_name');
     $quiz->quiz_code = Request::input('quiz_code');
     $quiz->created_by = Auth::user()->email;
     $quiz->save();
     for ($i = 0; $i < sizeof($question_ids); $i++) {
         $question = Question::find($question_ids[$i]);
         $question->question_description = $question_name[$question_ids[$i]];
         $question->question_option_A = $question_answers[$question_ids[$i]]["'A'"];
         $question->question_option_B = $question_answers[$question_ids[$i]]["'B'"];
         $question->question_option_C = $question_answers[$question_ids[$i]]["'C'"];
         $question->question_option_D = $question_answers[$question_ids[$i]]["'D'"];
         $question->question_correct_answer = $correct_answers[$question_ids[$i]];
         $question->save();
     }
     $quiz = Quiz::all();
     $success = "SUCCESS";
     return view('showQuiz')->with(compact('quiz'))->with(compact('success'));
 }