new project (brain storming)

For some time I was out of new ideas. The only project that I was working (personal time) was my recipe site (isn't finish, but is about 85%).
Now I'm having and idea. Is quite simple, but the most critical part is not in the correct definition of the models, but the interaction of some models.
My new project is a mix of on-line education and notebook.

Some important points:
* web javascript editors (to associate with the models, for the different type of content).
** ie: text editors, diagram editors, image editors, spreadsheets editors, 
* Teacher role that can create his own classes, with RO documentation (comments/notes available as private thing, included in the doc or as a separated model). Having private forum/private messages with history and an imposed schedule.
* File types like articles, books, presentations, etc, diffier each another by the editor that is used (if the editor is oriented to publish just a small amount of text, without having sections, is an article editor, etc).
* A dashboard should be created to view (quick view) the files and probably other data (metadata or content)
* A quick link table (favorites, or something like that)

Beside the feature that an instructor could teach, the main reason for this program is to have notes organized in classes/themes (math 2014, gym 2014, etc), and had some documents with assigned time schedule.

For example, for french 101, just a note where to take the course or any other basic information scheduled from March to December on Mondays from 4 to 7pm, could be the year to take that class. And form exams or any other important event, associate another note or a bigger document (guide for a project), and this can have several alerts (1 or 2 previews and 1 last presentation, or whatever). The alerts shouldn't be associated to the basic schedule (as a project could be presented in front a special committee with its proper schedule/date time associated).

Another thing that this application should have is the capability to upload files. For example, if I had a division named "rent", I can upload scans from the payments