Skip to content

Internal Notes

Roman Kucher QA Nearn edited this page Sep 12, 2025 · 10 revisions

📄 Internal Notes

1. Overview

The Notes feature allows Sponsors to create, manage, and reference short text-based entries attached to entities within the system. Notes improve collaboration, knowledge sharing, and context preservation by enabling quick annotations without modifying the core entity data.

Supported actions:

  • Create
  • View
  • Pin
  • Copy Link
  • Delete
  • Reply

Visibility: Notes and replies are visible only to the Sponsor and members of the Sponsor’s team. Contributors (talents) cannot see these notes or replies.

Role Mapping for Authors: When a note, reply, or comment is created, the system assigns the following roles:

  • Listing Creator → role: Creator
  • Submission Creator → role: Talent
  • Other Sponsors → role: Sponsor

2. Objectives

  • Provide a lightweight mechanism for Sponsors to attach textual context to entities.
  • Support collaboration by allowing Sponsor team members to view and interact with Notes and Replies.
  • Ensure Notes and Replies remain non-intrusive, contextual, and traceable.
  • Enable auditability (who created/deleted/pinned/replied).
  • Clearly display the author’s role (Creator, Talent, Sponsor) on each note/reply/comment.

3. Functional Requirements

3.1 Create Note
  • Sponsors can create a new note attached to a specific entity.

  • Input supports plain text (no formatting).

  • Metadata stored:

    • Note ID (UUID)
    • Entity ID (linked object)
    • Author ID
    • Author Role (Creator / Talent / Sponsor)
    • Created timestamp
  • Notes created are visible only to the Sponsor and their members.

3.2 View Notes
  • Notes are displayed in chronological order under the related entity.

  • Pinned notes remain at the top of the pinned section.

  • Each note displays:

    • Author’s name/avatar
    • Author’s role (Creator, Talent, Sponsor)
    • Creation timestamp
    • Text content
    • Actions: Pin, Copy Link, Delete, Reply
  • Notes and replies are not visible to contributors (talents).

3.3 Pin Note
  • A note can be pinned for quick access.
  • Multiple notes can be pinned and displayed in the order they were pinned.
  • Pinned notes are always shown above unpinned notes.
  • Visibility: only Sponsor and their members can see pinned notes.
3.4 Copy Link to Note
  • Each note has a unique, shareable URL.
  • Clicking “Copy Link” copies the direct URL to clipboard.
  • Only authorized Sponsor members can access the link.
3.5 Copy Link to Reply
  • Each reply has a unique, shareable URL.
  • Clicking “Copy Link” on a reply copies the direct URL to clipboard.
  • Only authorized Sponsor members can access the link.
3.6 Delete Note
  • Sponsors can delete only their own notes.

  • Admins can delete any note.

  • Deleted notes should either:

    • Be hard deleted (removed completely), or
    • Be soft deleted (kept in DB with deleted_at timestamp).
  • Deleted notes are removed from all Sponsor member views.

  • Sponsors cannot delete notes authored by other Sponsors.

3.7 Delete Reply
  • Sponsors can delete only their own replies.
  • Admins can delete any reply.
  • Deleted replies are removed from all Sponsor member views.
  • Sponsors cannot delete replies authored by other Sponsors.
3.8 Reply to Note
  • Sponsors can reply to any note.

  • Replies display:

    • Author’s name/avatar
    • Author’s role (Creator, Talent, Sponsor)
    • Creation timestamp
    • Text content
    • Actions: Copy Link, Delete
  • Multiple replies appear nested/indented under the parent note in chronological order.

  • Only the reply author or Admin can delete a reply.

  • Replies are visible only to Sponsor and their members.

  • Copy link for a reply points directly to the reply itself.


4. User Story

Title: Sponsor can manage notes and replies on entities

As a Sponsor, I want to create, view, pin, copy, delete, and reply to notes attached to entities, So that I can store contextual information, highlight important notes, share them internally, and remove outdated information efficiently. Notes and replies should remain visible only to my team and not to contributors (talents). Each note, reply, or comment should display the author’s role (Creator, Talent, Sponsor).


5. Acceptance Criteria (Given-When-Then)

AC-1: Create Note
  • Given a Sponsor is viewing an entity
  • When the Sponsor enters text and saves a new note
  • Then the note is displayed immediately under the entity for Sponsor and their members
  • And the note shows author, timestamp, and role (Creator / Talent / Sponsor)
  • And the note is not visible to contributors (talents)
AC-2: View Notes
  • Given a Sponsor is viewing an entity with existing notes
  • When the notes are displayed
  • Then all notes appear in chronological order for Sponsor and their members
  • And pinned notes are displayed at the top
  • And each note shows author, role, timestamp, content, and actions (Pin, Copy Link, Delete, Reply)
  • And contributors (talents) cannot see any notes or replies
AC-3: Pin Note
  • Given a Sponsor has multiple notes for an entity
  • When the Sponsor pins a note
  • Then that note is displayed at the top of the pinned notes section
  • And previously pinned notes remain pinned below it in the order they were pinned
  • And pinned notes are only visible to Sponsor and their members
AC-4: Copy Note Link
  • Given a Sponsor is viewing a note
  • When the Sponsor clicks “Copy Link” on a note
  • Then the note’s unique URL is copied to the clipboard
  • And pasting the URL opens the correct note only for Sponsor members
AC-5: Copy Reply Link
  • Given a Sponsor is viewing a reply
  • When the Sponsor clicks “Copy Link” on a reply
  • Then the reply’s unique URL is copied to the clipboard
  • And pasting the URL opens the correct reply only for Sponsor members
AC-6: Delete Note
  • Given a Sponsor is viewing their own note

  • When the Sponsor deletes it

  • Then the note is removed from the UI for all Sponsor members

  • And if soft delete is enabled, it is stored with a deleted_at timestamp

  • Given a Sponsor is viewing a note authored by another Sponsor

  • When they attempt to delete it

  • Then the action is blocked

AC-7: Delete Reply
  • Given a Sponsor is viewing their own reply

  • When they delete it

  • Then the reply is removed from the UI for all Sponsor members

  • And if soft delete is enabled, it is stored with a deleted_at timestamp

  • Given a Sponsor is viewing a reply authored by another Sponsor

  • When they attempt to delete it

  • Then the action is blocked

AC-8: Reply to Note
  • Given a Sponsor is viewing a note
  • When the Sponsor adds a reply
  • Then the reply is displayed nested under the parent note with author, role, and timestamp
  • And multiple replies appear in chronological order
  • And only the reply author can delete the reply

6. Non-Functional Requirements

  • Performance: Notes and replies loading must not delay entity view (<300ms for 10 notes/replies).
  • Security: Only authorized Sponsors and their members can access notes and replies.
  • Auditability: Track all note actions (create, delete, pin, reply).
  • Usability: Provide clear error handling (e.g., failed to save note/reply).
  • Visibility: Notes and replies must never be visible to contributors (talents).
  • Role Mapping: Always display the correct role (Creator / Talent / Sponsor) for every note, reply, and comment.

Clone this wiki locally