locked
Online Quiz or Exam System Using ASP.NET MVC C# RRS feed

  • Question

  • User-698989805 posted

    Hello friends! I've a project that will be implemented with online quiz or exam system for students. There are few requirements where I require expert's suggestion in order to make it a successful one. The technologies will be ASP.NET MVC, C#, jQuery, SQL Server Database.

    Let me write few functional parts that need utmost consideration:

    1) Quiz will be defined initially in database with correct answer and score

    2) There will be levels to get into the next quiz

    3) Quiz can be withdrawn anytime and when user or students get back, then can start from the exact question that was left unanswered

    4) An option to mark the questions for answering them later

    5) A duration should be set say, 1 hour for 50 questions and within this duration, students can modify previous answers or keep questions unanswered  

    6) Finally an instant result that will be displayed after completion of the quiz

    Now these things are pretty basic and few things have to be configured using database. As I am planning to use jQuery, I was thinking if it's ok to use session or something similar to keep the state of the questions.

    Session["val"] = sampleList;

    The project should show quiz questions one by one, say when user submits the next button, it should redirect to the next question and a previous button to get back to the previous one. Again I am thinking, say a user cancels a quiz, then gets back to finish it off from the section left, should be saved in database or somewhere else.

    The project is big and a user of 800 should hit the application in a year. So I am expecting few suggestions from the experts, so is it feasible to use the mechanism I am thinking or any similar project that I can play around to understand the workflow - Thanks.

    Wednesday, June 24, 2020 11:16 AM

All replies

  • User475983607 posted

    Are you asking if you using Session to cache exam questions?  I guess that's okay but you have not explained technical reason for caching questions in Session.  I feel it is an extra layer of code and I would get the questions from the database on demand but there could be a good reason for caching questions.  What's your reason for caching the question?

    Wednesday, June 24, 2020 11:53 AM
  • User288213138 posted

    Hi TechView,

    Now these things are pretty basic and few things have to be configured using database. As I am planning to use jQuery, I was thinking if it's ok to use session or something similar to keep the state of the questions.

    Session["val"] = sampleList;

    The project should show quiz questions one by one, say when user submits the next button, it should redirect to the next question and a previous button to get back to the previous one. Again I am thinking, say a user cancels a quiz, then gets back to finish it off from the section left, should be saved in database or somewhere else.

    Do you want to use session to store temporary data? If yes, then seesion is OK. but a session is degrading your performance.

    Consider using a caching layer with a store like Memcached. With both options you can store your objects for retrival without a big performance hit.

    Best regards,

    Sam

    Thursday, June 25, 2020 10:00 AM
  • User-698989805 posted

    Hello mgebhard and Sam! Thanks for your time and the replies, really appreciate it. The reason I can see to use session, are the followings and could be used for more scenarios:

    1) A student will submit an answer and go for the next question and in the same time, they can go back to the previous one - My thought is this, student's answer will not be saved in database initially and the answers with question will be saved temporarily in some kind of object. Though I'll be using jQuery and thinking if I require to use session variable to get the states for previous and next question as well to keep track

    2) In the same time, there will be situations like student may end a exam half way and can sit for it from the point they left questions unanswered. This could be using a button event asking the user to do it or even if they close the browser. In this case, I'll require something that can store temporarily and save them instantly whenever the mentioned situation occurs

    I didn't try Memcached earlier but will definitely give a try Sam. Thanks for it and will appreciate if you guys provide some more details in brief to handle the above situations in efficient way keeping performance issues in mind - Thanks.

    Friday, June 26, 2020 6:10 PM
  • User-2054057000 posted

    The technologies will be ASP.NET MVC, C#, jQuery, SQL Server Database.

    Let me write few functional parts that need utmost consideration:

    1) Quiz will be defined initially in database with correct answer and score

    Now these things are pretty basic and few things have to be configured using database. As I am planning to use jQuery, I was thinking if it's ok to use session or something similar to keep the state of the questions.

    No need to store questions in Session you only store the current question no in session. This will let you know which question the person is currently on.

    The project is big and a user of 800 should hit the application in a year. So I am expecting few suggestions from the experts, so is it feasible to use the mechanism I am thinking or any similar project that I can play around to understand the workflow - Thanks.

    I don't think you need anything special to do as only 800 people will hit the application in a year. I mean there is just no need to apply caching techniques in your project.

    Saturday, June 27, 2020 4:36 AM
  • User288213138 posted

    Hi TechView,

    I didn't try Memcached earlier but will definitely give a try Sam. Thanks for it and will appreciate if you guys provide some more details in brief to handle the above situations in efficient way keeping performance issues in mind

    Here some article about the use of Memcached for you as a reference.

    https://deanhume.com/memcached-for-c-a-walkthrough/

    http://geekswithblogs.net/shaunxu/archive/2010/04/07/first-round-playing-with-memcached.aspx

    Best regards,

    Sam

    Tuesday, June 30, 2020 8:08 AM