FLOWS
Overall program flow: Read input information → Create data → Render module page → User can navigate pages and manually render each page
Overall note rendering flow (probably): Module → Topics → Sub-Topics → Refined Notes → Definitions → Questioning Notes → Priming Notes → Flashcards → Question Answers → Cheat Sheet(s) (midterm and final?)
When bits of data are rendered in multiple blocks, make those bits of text linked with MetaBind for easier editing/(re-)rendering + obviously only initially render in one place.
MAYBE ACTUALLY DO ALL RENDERS WITH REPLACE SELF BUTTONS???? FOR EASIER FINE-GRAIN RE-RENDERING???????
DATA
“Templates/Module Template” rendered with…
MODULE_LEVEL_DATA = {
"module": {
"info": {
"coordinator": {
"name": "some name",
"email": "some email",
},
"name": {
"short": "some module name",
"long": "some module name with code",
"formatted": "**some module code** some module name",
},
"components": {
"coursework": {
"weight": 0.4,
"assignments": [
"Weekly Assignment 1",
"Weekly Assignment 2",
...,
],
},
"portfolio": {
"weight": 0.6,
"tests": [
"Mid-Term",
"Final",
...
],
},
},
"outcomes": [
"LO1",
"LO2",
...,
],
},
"lectures": {
"1": {
"topics": [
"some topic",
"some other topic",
"another topic",
...
],
"questions": {
"is this a question?": "this is an answer.",
"is this a question?": "this is an answer.",
"is this a question?": "this is an answer.",
...,
},
},
"2": {
"topics": [
"some topic",
"some other topic",
"another topic",
...
],
"questions": {
"is this a question?": "this is an answer.",
"is this a question?": "this is an answer.",
"is this a question?": "this is an answer.",
...,
},
},
...,
},
"notes": {
"some topic": {
"some sub-topic": {
"some note": {
"summary": "this is a summary of the note",
"content": {
"definitions": {
"some name": "some definition",
"some name": "some definition",
"some name": "some definition",
...,
},
"examples": {
"example question": "example answer",
"example question": "example answer",
"example question": "example answer",
...,
},
"historical_context": "this is some historical context",
},
},
...,
},
...,
},
...,
}
}
} # made from PDFs (and user input if anything is missing)
“Templates/Questions Template” rendered with…
QUESTION_LEVEL_DATA = {
"questions": {
"1": {
"topic": "some topic",
"marks": "3",
"content": "some content",
"solution": "some solution",
},
"2": {
"topic": "some topic",
"marks": "10",
"content": "some content",
"solution": "some solution",
},
...,
}
} # made from PDFs
“Templates/Topic Template” rendered with…
TOPIC_LEVEL_DATA = {
"subtopics": {
"some sub-topic": {
"some note": {
"summary": "this is a summary of the note",
"content": {
"definitions": {
"some name": "some definition",
"some name": "some definition",
"some name": "some definition",
...,
},
"examples": {
"example question": "example answer",
"example question": "example answer",
"example question": "example answer",
...,
},
"historical_context": "this is some historical context",
},
},
...,
},
...,
},
...,
}
}
“Templates/Sub-Topic Template” rendered with…
SUBTOPIC_LEVEL_DATA = {
"notes": {
"some note": {
"summary": "this is a summary of the note",
"content": {
"definitions": {
"some name": "some definition",
"some name": "some definition",
"some name": "some definition",
...,
},
"examples": {
"example question": "example answer",
"example question": "example answer",
"example question": "example answer",
...,
},
"historical_context": "this is some historical context",
},
},
...,
}
} # made by extracting a value from module level dictionary and assigning to a new key
“Templates/Refined Note Template” rendered with…
NOTE_LEVEL_DATA = {
"summary": "this is a summary of the note",
"content": {
"definitions": {
"some name": "some definition",
"some name": "some definition",
"some name": "some definition",
...,
},
"examples": {
"example question": "example answer",
"example question": "example answer",
"example question": "example answer",
...,
},
"historical_context": "this is some historical context",
},
} # made by extracting from module level dictionary
“Templates/Flashcards Template” rendered with…
FLASHCARDS_LEVEL_DATA = {
"flashcards": {
"some front text": "some back text",
"some front text": "some back text",
...,
}
} # made by simplifying notes
note: think about where to link to these - can always do note level and then combine them up for each level, maybe?
“Templates/Definition Template” rendered with…
DEFINITION_LEVEL_DATA = {
"definition": "some definition",
} # made by extracting a value from note level dictionary and assigning to a new key
note: ensure the name of any definitions starts with “Definition of ”
“Templates/Priming Note Template” and “Templates/Questioning Note Template” rendered with…
LECTURE_LEVEL_DATA = {
"topics": [
"some topic",
"some other topic",
"another topic",
...,
],
"questions": {
"is this a question?": "this is an answer.",
"is this a question?": "this is an answer.",
"is this a question?": "this is an answer.",
...,
},
} # made by extracting from module level dictionary
“Templates/Cheat Sheet Template” rendered with…
CHEATSHEET_LEVEL_DATA = {
"module": {
"info": {
"coordinator": {
"name": "some name",
"email": "some email",
},
"name": {
"short": "some module name",
"long": "some module name with code",
"formatted": "**some module code** some module name",
},
"components": {
"coursework": {
"weight": 0.4,
"assignments": [
"Weekly Assignment 1",
"Weekly Assignment 2",
...,
],
},
"portfolio": {
"weight": 0.6,
"tests": [
"Mid-Term",
"Final",
...
],
},
},
"outcomes": [
"LO1",
"LO2",
...,
],
}
},
"cheatsheet": {
"content": "..."
}
} # made by appending module info extracted from module level dictionary onto novel content based on existing module folder
note: re-think the design and modularity of the cheat sheet, maybe I can re-use more data.