Implementation Report

Lab 08: Online Quiz System


Overview

This lab involved developing a role-based Online Quiz System using ASP.NET Web Forms and VB.NET, supporting three roles: Teacher, Student, and Administrator each with a distinct interface with session-based authorization. Teachers add questions with multiple choice options, students attempt randomized quizzes, and results are stored and displayed on submission.

HTML, ASPX & VB Code

IAD Lab 08 Code.pdf

Database Schema

TableKey ColumnsPurpose
USER_t User_Id, Username, Password, Role All users with their assigned role.
QUESTION_t Question_Id, Question_Text, Created_By Quiz questions entered by teachers.
OPTION_t Option_Id, Question_Id, Option_Text, Is_Correct Answer options Is_Correct flags the right answer.
RESULT_t Result_Id, Student_Id, Score, Attempt_Date Student scores per attempt.
ANSWER_t Answer_Id, Result_Id, Question_Id, Selected_Option_Id Each student's selected option per question.

Key SQL Queries

Fetch questions + options (randomized):

SELECT Q.Question_Id, Q.Question_Text, O.Option_Id, O.Option_Text
FROM QUESTION_t Q
JOIN OPTION_t O ON Q.Question_Id = O.Question_Id
ORDER BY NEWID();

Insert question & option:

INSERT INTO QUESTION_t (Question_Text, Created_By) VALUES (@QuestionText, @TeacherId);
INSERT INTO OPTION_t (Question_Id, Option_Text, Is_Correct) VALUES (@QuestionId, @OptionText, @IsCorrect);

Save result & calculate score:

INSERT INTO RESULT_t (Student_Id, Score, Attempt_Date) VALUES (@StudentId, @Score, GETDATE());

SELECT COUNT(*) AS CorrectAnswers
FROM ANSWER_t A JOIN OPTION_t O ON A.Selected_Option_Id = O.Option_Id
WHERE A.Result_Id = @ResultId AND O.Is_Correct = 1;

Test Cases

#Test CaseExpected Output
1Valid Teacher loginRedirected to Teacher dashboard
2Valid Student loginRedirected to Attempt Quiz page
3Invalid credentialsError message, it stays on Login page
4Student accesses Teacher URL directlywill be Redirected to Login page
5Teacher adds complete questionSaved to DB, confirmation is shown
6Teacher submits empty questionValidation error, no record inserted
7No questions in DB"No questions available. Please try later."
8Student submits quizScore is calculated, stored, and displayed
9Student skips a questionSkipped question is counted as incorrect
10Same student attempts twiceDifferent question/option order is shown each time

Technical Details

Built with ASP.NET Web Forms (VB.NET) and ADO.NET (SqlConnection, SqlCommand, SqlDataAdapter). Session("Role") and Session("User_Id") are set on login and validated on every protected page's Page_Load. The quiz dynamically generates one RadioButtonList per question, since dynamic controls don't survive postbacks, student selections are re-read from Request.Form at submission.


Back
Web hosting by Somee.com