tags:

views:

122

answers:

4

Hi, i want to build a simple online exam system web application where students can give exam. Exam will be evaluated by the course teacher. I choose the entities:

  1. student
  2. teacher
  3. course
  4. question
  5. Exam
  6. result

Please suggest that if this is ok or not.

Another problem is that how can i store my questions in the database? there will be both MCQ and written in the same question. what will be most efficient.

Thanks in advance

+1  A: 

I think you will also need an entity for QuestionAnswer.

AJ
Thanks for sharing
Mr. Flint
@DBquery, if you look at the left of each answer you'll see that there's a number, with an arrow above and below. If you feel an answer is useful you should, really, signify your appreciation by either voting the answer up (clicking on the upper arrow) or by clicking the '✓' symbol (which signifies that you accept that answer as being the correct/most-useful answer). 0% is not a good accept-rate; unless you've yet to receive a good answer to all eight of your asked questions.
David Thomas
+1  A: 

Maybe you may need several kinds of answers at one point. MCQ, allocation, cloze text, question with images ...

The question model can be thought of as inheritance tree: each question may have date_created, date_updated, an id, a creator, maybe even a question as string. specialised classes take care of the MCQ, cloze text, etc ..

This is about inheritance in relational models: see also: /questions/190296/how-do-you-effectively-model-inheritance-in-a-database

Another way to model this domain for rapid application development would be to use some No-SQL database like couchdb or docuement oriented databases

The MYYN
+1  A: 

While making your own might be a worthwhile experience it's probably unnecessary work unless you have very special requirements.

Perhaps Moodle will work for you?

Moodle is a software package for producing Internet-based courses and web sites. It is a global development project designed to support a social constructionist framework of education.

Moodle is provided freely as Open Source software (under the GNU Public License). Basically this means Moodle is copyrighted, but that you have additional freedoms. You are allowed to copy, use and modify Moodle provided that you agree to: provide the source to others; not modify or remove the original license and copyrights, and apply this same license to any derivative work. Read the license for full details and please contact the copyright holder directly if you have any questions.

Moodle can be installed on any computer that can run PHP, and can support an SQL type database (for example MySQL). It can be run on Windows and Mac operating systems and many flavors of linux (for example Red Hat or Debian GNU). There are many knowledgable Moodle Partners to assist you, even host your Moodle site.

The word Moodle was originally an acronym for Modular Object-Oriented Dynamic Learning Environment, which is mostly useful to programmers and education theorists. It's also a verb that describes the process of lazily meandering through something, doing things as it occurs to you to do them, an enjoyable tinkering that often leads to insight and creativity. As such it applies both to the way Moodle was developed, and to the way a student or teacher might approach studying or teaching an online course. Anyone who uses Moodle is a Moodler.

Nifle
+1  A: 

Is it a good idea to write use cases for requirements, even for a hobby project, or else you be facing a lot of possibilities. Having a setting helps because usually certain business models would have new roles.

For example

  1. Visitors -- people who can view content, but not take exams
  2. Supervisor -- could be a parent of a student who has access to all the log of his child but not all the class
  3. Paid vs. free users

Another approach which I would suggest is to have roles instead of fixed entities to represent the system. Also missing from your entities list are reference materials and administrators (can teacher delete each others' tests?)

Extrakun