@startuml skinparam linetype ortho skinparam rectangle { BackgroundColor White BorderColor Black Shadowing false } hide circle entity User { * id : UUID <<PK>> -- * email : string <<unique>> * eed : string <<unique>> * password : string * name : string * job_title : string * department : string * location : string * is_active : boolean * created_at : datetime } entity Role { * id : UUID <<PK>> -- * name : string } entity Project { * id : UUID <<PK>> -- * name : string * description : text * kpis : String * evaluationCriteria : JSONB } entity UserRoleProject { * id : UUID <<PK>> -- * user_id : UUID <<FK>> * role_id : UUID <<FK>> * project_id : UUID <<FK>> } entity Session { * id : UUID <<PK>> -- * mentor_id : UUID <<FK>> * mentee_id : UUID <<FK>> * project_id : UUID <<FK>> * date : date * start_time : time * end_time : time * status : string <<enum>> * activity_type : string * created_at : datetime } entity AdminLog { * id : UUID <<PK>> -- * admin_id : UUID <<FK>> * action : string target_user_id : UUID <<nullable>> target_project_id : UUID <<nullable>> * created_at : datetime } entity Availability { * id : UUID <<PK>> -- * user_id : UUID <<FK>> * day_of_week : string * start_time : time * end_time : time * one_time : boolean date_override : date <<nullable>> } entity Feedback { * id : UUID <<PK>> -- * session_id : UUID <<FK>> * given_by_id : UUID <<FK>> * given_to_id : UUID <<FK>> * rating : int (1-5) comments : text <<nullable>> * type : string <<enum>> * created_at : datetime } entity Skill { * id : UUID <<PK>> -- * name : string <<unique>> } entity UserSkill { * id : UUID <<PK>> -- * user_id : UUID <<FK>> * skill_id : UUID <<FK>> * type : string <<enum>> } entity SkillEndorsement { * id : UUID <<PK>> -- * endorsed_by_id : UUID <<FK>> * skill_id : UUID <<FK>> * endorsed_user_id : UUID <<FK>> * created_at : datetime } ' Relationships with crow's foot notation User ||--o{ UserRoleProject : "participates in" Project ||--o{ UserRoleProject : "has participants" Role ||--o{ UserRoleProject : "in project" User ||--o{ Session : "mentors" User ||--o{ Session : "is mentored" Project ||--o{ Session : "has sessions" User ||--o{ AdminLog : "performs" User ||--o| AdminLog : "targeted by" Project ||--o| AdminLog : "targeted by" User ||--o{ Availability : "has" Session ||--o{ Feedback : "receives" User ||--o{ Feedback : "gives" User ||--o{ Feedback : "receives" User ||--o{ UserSkill : "has" Skill ||--o{ UserSkill : "possessed by" User ||--o{ SkillEndorsement : "endorses" User ||--o{ SkillEndorsement : "endorsed" Skill ||--o{ SkillEndorsement : "endorsed" @enduml
Decode URL
Submit
amiga
aws-orange
black-knight
bluegray
blueprint
cerulean-outline
cerulean
crt-amber
crt-green
cyborg-outline
cyborg
hacker
lightgray
mars
materia-outline
materia
metal
mimeograph
minty
plain
reddress-darkblue
reddress-darkgreen
reddress-darkorange
reddress-darkred
reddress-lightblue
reddress-lightgreen
reddress-lightorange
reddress-lightred
sandstone
silver
sketchy-outline
sketchy
spacelab
spacelab-white
superhero-outline
superhero
toy
united
vibrant
🎉 Discover the future PlantUML Web Editor! 🚀
PNG
SVG
ASCII Art