ERD Diagram - JerryNixon/2025-luca-ama-app GitHub Wiki

User ERD diagram

---
title: authentication & Event Access
---
 erDiagram
    USER ||--o{ EVENTPARTICIPATION : joins
    EVENT ||--o{ EVENTPARTICIPATION : has
    EVENT ||--o{ SHARELINK : has

    USER {
        int id PK
        string name
        string email
        boolean is_microsoft_user
    }

    EVENT {
        int id PK
        string name
        date open_date
        date close_date
    }

    SHARELINK {
        int id PK
        int event_id FK
        string url
    }

    EVENTPARTICIPATION {
        int id PK
        int user_id FK
        int event_id FK
        datetime joined_at
    } 


---
title: Question Submission & Interaction
---
 erDiagram
    USER ||--o{ QUESTION : submits
    QUESTION ||--o{ UPVOTE : has

    USER {
        int id PK
        string name
        string email
    }

    QUESTION {
        int id PK
        int event_id FK
        int user_id FK
        string content
        boolean is_anonymous
        boolean is_answered
        boolean is_starred
        boolean is_grouped
        int parent_question_id FK
        datetime created_at
    }

    UPVOTE {
        int id PK
        int user_id FK
        int question_id FK
        Int nb-of-votes
    } 
---
title: Question Viewing & Filtering
---
 erDiagram
    EVENT ||--o{ QUESTION : includes
    QUESTION ||--o{ QUESTION : groups
    EVENT ||--|| STAGEDQUESTION : has
    STAGEDQUESTION ||--|| QUESTION : stages

    EVENT {
        int id PK
        string name
    }

    QUESTION {
        int id PK
        int event_id FK
        string content
        string author_display
        boolean is_answered
        boolean is_starred
        boolean is_grouped
        int parent_question_id FK
    }

    STAGEDQUESTION {
        int id PK
        int event_id FK
        int question_id FK
        datetime staged_at
    } 

---
title: Overall View
---

erDiagram
    USER {
        int id PK
        string name
        string email
    }
    EVENT {
        int id PK
        string name
        datetime start_time
        datetime end_time
    }
    QUESTION {
        int id PK
        int event_id FK
        int user_id FK
        text text
        datetime created_at
        boolean is_anonymous "Hide author info when true"
    }
    VOTE {
        int id PK
        int question_id FK
        int user_id FK
        int nb_of_votes
    }

    USER ||--o{ QUESTION : "submits"
    EVENT ||--o{ QUESTION : "contains"
    QUESTION ||--o{ VOTE : "receives"
    USER ||--o{ VOTE : "casts"

Moderator/Presenter ERD Diagram

---
title: Event management
---
 erDiagram
    MODERATOR ||--o{ EVENT : creates
    EVENT ||--o{ SHARELINK : has

    MODERATOR {
        int id PK
        string name
        string email
    }

    EVENT {
        int id PK
        string name
        date open_date
        date close_date
        int moderator_id FK
    }

    SHARELINK {
        int id PK
        int event_id FK
        string url
    } 


---
title: Question management
---
 erDiagram
    EVENT ||--o{ QUESTION : includes
    QUESTION ||--o{ STAR : has
    QUESTION ||--o{ ANSWER : has
    QUESTION ||--o{ QUESTION : groups

    EVENT {
        int id PK
        string name
    }

    QUESTION {
        int id PK
        int event_id FK
        string author
        string content
        int votes
        boolean is_answered
        boolean is_starred
        boolean is_grouped
        int parent_question_id FK
    }

    STAR {
        int id PK
        int question_id FK
        datetime starred_at
    }

    ANSWER {
        int id PK
        int question_id FK
        string answer_text
        datetime answered_at
    } 


---
title: Event management
---
 erDiagram
    QUESTION ||--o{ PRESENTERNOTE : has
    EVENT ||--|| STAGEDQUESTION : has
    STAGEDQUESTION ||--|| QUESTION : stages

    QUESTION {
        int id PK
        int event_id FK
        string content
    }

    PRESENTERNOTE {
        int id PK
        int question_id FK
        string note_text
        string visible_to
    }

    STAGEDQUESTION {
        int id PK
        int event_id FK
        int question_id FK
        datetime staged_at
    }