Hi
wow - objectives are big and scope of the project as well... My feeling is that you do not have much experience and trying something like this is quite big job and long one.
this is database driven project - first you need solid schema for this do not start developing app (any changes to database schema == changes to your app)
I am not sure if I mentioned this or not: spend as much time as you can to desing database schema, read about normalization and how to desing properly database (lot of books and resources online) once you are happy with this there is second stage write/develop app for this: PHP, JAVA what you like.
the only one more sugesstion I would like to make: do you need write it from the begining, can you use existing solution for this e.g. Moodle very good e-Learning platform for free, or even use CMS such as Drupal, Joomla etc.
to give you answer how and what tables should look (databse schema) this is not easy - and at the end is your project. You have gotten a lot info fro this forum users how to start and progress wiht your work: now start planning, and developing
Good Luck
Grzegorz Agacinski
http://webdevsphere.com