/** * 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]; }
/** * 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); }
/** * 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); }
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]); }
/** * 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); }
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(); }
/** * 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'); }
public function index($id) { $quiz = \App\Quiz::find($id)->with('questions.answers')->firstOrFail(); return $this->makeResponse('quiz.single', array('quiz' => $quiz)); }
$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('/'); });
/** * 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); }
/** * 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]); }
/** * 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]); }
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')); }