digraph dbml { rankdir=LR; graph [fontname="helvetica", fontsize=32, fontcolor="#29235c", bgcolor="transparent"]; node [penwidth=0, margin=0, fontname="helvetica", fontsize=32, fontcolor="#29235c"]; edge [fontname="helvetica", fontsize=32, fontcolor="#29235c", color="#29235c"]; "module_type" [id="module_type";label=<
module_type
lesson
assignment
>]; "User" [id="User";label=<
User
id uuid (!)
firstName varchar (!)
lastName varchar (!)
email varchar (!)
createdAt timestamp (!)
updatedAt timestamp
>]; "UserPreferences" [id="UserPreferences";label=<
UserPreferences
id uuid (!)
userId uuid (!)
practiceGoal integer
why varchar
codingAbility integer
>]; "Path" [id="Path";label=<
Path
id uuid (!)
name varchar (!)
icon varchar (!)
description varchar (!)
createdAt timestamp (!)
updatedAt timestamp
characterId uuid (!)
>]; "UserPath" [id="UserPath";label=<
UserPath
id uuid (!)
userId uuid (!)
pathId uuid (!)
completed boolean (!)
joined timestamp (!)
>]; "Concept" [id="Concept";label=<
Concept
id uuid (!)
name varchar (!)
description text (!)
icon varchar (!)
taughtIn uuid (!)
>]; "UserConcepts" [id="UserConcepts";label=<
UserConcepts
userId uuid (!)
conceptId uuid (!)
learned timestamp (!)
>]; "Module" [id="Module";label=<
Module
id uuid (!)
name varchar (!)
icon varchar (!)
type module_type (!)
previous uuid
pathId uuid (!)
>]; "UserModule" [id="UserModule";label=<
UserModule
id uuid (!)
userId uuid (!)
moduleId uuid (!)
completedAt timestamp
>]; "Assignment" [id="Assignment";label=<
Assignment
id uuid (!)
moduleId uuid (!)
description varchar (!)
>]; "AssignmentFile" [id="AssignmentFile";label=<
AssignmentFile
id uuid (!)
author uuid (!)
assignmentId uuid (!)
name varchar (!)
type varchar (!)
content text (!)
>]; "Lesson" [id="Lesson";label=<
Lesson
id uuid (!)
moduleId uuid (!)
>]; "StorySection" [id="StorySection";label=<
StorySection
id uuid (!)
lessonId uuid (!)
order int (!)
content text (!)
teaches uuid
>]; "Character" [id="Character";label=<
Character
id uuid (!)
name varchar (!)
displayName varchar (!)
>]; "Friends" [id="Friends";label=<
Friends
user1Id uuid (!)
user2Id uuid (!)
since timestamp (!)
>]; "FriendRequests" [id="FriendRequests";label=<
FriendRequests
from uuid (!)
to uuid (!)
accepted boolean
requested timestamp (!)
>]; "UserPreferences":f0 -> "User":f0 [style=invis, weight=100, color=red] "UserPreferences":f2:e -> "User":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="1"] "Path":f0 -> "Character":f0 [style=invis, weight=100, color=red] "Path":f7:e -> "Character":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="1"] "UserPath":f0 -> "User":f0 [style=invis, weight=100, color=red] "UserPath":f2:e -> "User":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "UserPath":f0 -> "Path":f0 [style=invis, weight=100, color=red] "UserPath":f3:e -> "Path":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "Concept":f0 -> "Module":f0 [style=invis, weight=100, color=red] "Concept":f5:e -> "Module":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="1"] "UserConcepts":f0 -> "User":f0 [style=invis, weight=100, color=red] "UserConcepts":f1:e -> "User":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "UserConcepts":f0 -> "Concept":f0 [style=invis, weight=100, color=red] "UserConcepts":f2:e -> "Concept":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "Module":f0 -> "Module":f0 [style=invis, weight=100, color=red] "Module":f5:e -> "Module":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "Module":f0 -> "Path":f0 [style=invis, weight=100, color=red] "Module":f6:e -> "Path":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "UserModule":f0 -> "User":f0 [style=invis, weight=100, color=red] "UserModule":f2:e -> "User":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "UserModule":f0 -> "Module":f0 [style=invis, weight=100, color=red] "UserModule":f3:e -> "Module":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "Assignment":f0 -> "Module":f0 [style=invis, weight=100, color=red] "Assignment":f2:e -> "Module":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "AssignmentFile":f0 -> "User":f0 [style=invis, weight=100, color=red] "AssignmentFile":f2:e -> "User":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "AssignmentFile":f0 -> "Assignment":f0 [style=invis, weight=100, color=red] "AssignmentFile":f3:e -> "Assignment":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "Lesson":f0 -> "Module":f0 [style=invis, weight=100, color=red] "Lesson":f2:e -> "Module":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "StorySection":f0 -> "Lesson":f0 [style=invis, weight=100, color=red] "StorySection":f2:e -> "Lesson":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "StorySection":f0 -> "Concept":f0 [style=invis, weight=100, color=red] "StorySection":f5:e -> "Concept":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="1"] "Friends":f0 -> "User":f0 [style=invis, weight=100, color=red] "Friends":f1:e -> "User":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "Friends":f0 -> "User":f0 [style=invis, weight=100, color=red] "Friends":f2:e -> "User":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "FriendRequests":f0 -> "User":f0 [style=invis, weight=100, color=red] "FriendRequests":f1:e -> "User":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "FriendRequests":f0 -> "User":f0 [style=invis, weight=100, color=red] "FriendRequests":f2:e -> "User":f1:w [dir=forward, penwidth=3, color="#29235c", headlabel="1", taillabel="*"] "Module":f4:e -> "module_type":f0:w [penwidth=3, color="#29235c", arrowhead="none", arrowtail="none"] }