Skip to main content

Overview

The Knowledge Base is a training video library that supports both global and auction-scoped content. It provides two content types: regular Videos for in-depth training and Shorts for bite-sized vertical content. Global videos are accessible to all authenticated users and managed by super admins. Auction-scoped videos are visible only to members of a specific auction and managed by the auction’s owner or admin. Progress is automatically tracked as users watch videos, with completion detected at 90% viewed for videos and on first play for Shorts.

Video Browser

Browse and watch training videos organized by category

YouTube Shorts

Manage bite-sized vertical Shorts for quick training content

Progress Tracking

Automatic tracking of watched time and completion status

Auction-Scoped Videos

Auction owners and admins can manage videos for their auction’s team

Access Levels

CapabilityAuction MembersAuction Owner/AdminSuper Admins
Browse global published videos and ShortsYesYesYes
Browse auction-scoped published videosOwn auctionOwn auctionYes
Watch videos and ShortsYesYesYes
Track progressYesYesYes
View continue watchingYesYesYes
Access global management interfaceNoNoYes
Create/edit/delete categoriesNoNoYes
Add/edit/delete global videosNoNoYes
Add/edit/delete global ShortsNoNoYes
Add/edit/delete auction-scoped videosNoOwn auctionYes
Toggle video/Short publishingNoOwn auctionYes
Reorder categories and videosNoNoYes
Create/edit/delete global tagsNoNoYes
Create/edit/delete auction-scoped tagsNoOwn auctionYes
Assign tags to videos and ShortsNoOwn auctionYes
The Knowledge Base supports two scopes of content:
  • Global videos — Accessible to all authenticated users regardless of auction membership. Managed by super admins via Settings > Knowledge Base.
  • Auction-scoped videos — Visible only to members of a specific auction. Managed by the auction’s owner or admin from the auction’s Knowledge Base tab.
Categories are shared globally across both scopes. On mobile, users access the Knowledge Base from the Home tab’s Resources section.

Accessing the Knowledge Base

Global Knowledge Base

1

Navigate to Knowledge Base

Click Knowledge Base in the sidebar navigation. The Knowledge Base section appears outside of any auction context and shows global videos.
2

Browse the Video Library

The main page displays your progress summary, continue watching section, and a filterable grid of all published global videos.
3

Manage Content (Super Admins)

If you are a super admin, click the Manage button in the header to access the management interface for categories, videos, and Shorts.

Auction-Scoped Knowledge Base

1

Navigate to an Auction

Select an auction from the sidebar to enter its context.
2

Open Knowledge Base Tab

Click the Knowledge Base tab within the auction navigation. This displays videos specific to the auction alongside global videos.
3

Manage Auction Videos (Owner/Admin)

If you are the auction owner or an admin, you can add, edit, and delete videos scoped to this auction. These videos are only visible to members of this auction.

Video Browser

The video browser is the main Knowledge Base page at /knowledge-base. It displays all published videos with filtering, search, and progress tracking.

Progress Summary

At the top of the page, a progress card shows your overall completion status:
  • Completed count — Number of videos you have finished watching
  • Total count — Total number of published videos
  • Percentage — Your completion percentage displayed as text and a progress bar
A video is automatically marked as completed when you have watched at least 90% of its duration. You do not need to watch the final seconds.

Continue Watching

Below the progress summary, a “Continue Watching” section displays up to 5 videos you have started but not yet completed, ordered by most recently watched. Each card shows:
  • Video thumbnail with progress bar overlay
  • Video title
  • Time watched vs. total duration with percentage
This section is hidden when you have no in-progress videos.

Search and Filter

The video browser provides three ways to find content:
Click category filter chips to show only videos in that category. An All chip shows the full library. Each chip displays the video count for that category. Use arrow keys for keyboard navigation between filters.
Click the tag icon button to open a popover with multi-select checkboxes. Select one or more tags to show only videos and Shorts that have at least one of the selected tags (OR logic). A badge on the tag icon indicates how many tags are active. Click Clear all to reset tag filters.

Video Grid

Videos display in a responsive grid (2 columns on small screens, 3 on large). Each video card shows:
ElementDescription
ThumbnailYouTube thumbnail image or placeholder icon
Completion badgeGreen checkmark overlay when video is completed
DurationBadge showing video length in MM:SS format
Progress barBottom bar showing watched percentage (hidden when completed)
CategoryBadge showing the video’s category name
TagsColored tag badges showing assigned tags
TitleVideo title (up to 2 lines)
DescriptionVideo description excerpt (up to 2 lines)
Click any video card to navigate to the video detail page.

Video Detail Page

The video detail page at /knowledge-base/[videoId] provides a full viewing experience for a single video.

Video Player

The player uses the YouTube IFrame API to embed videos directly in the page:
  • 16:9 aspect ratio container for consistent display
  • Resume playback — Automatically resumes from where you left off
  • Progress tracking — Saves your watch position every 10 seconds during playback
  • Auto-completion — Marks the video as completed when you reach 90% of the duration
  • Page unload save — Saves progress when you navigate away or close the tab
Progress is saved automatically. You do not need to manually save or mark videos as watched. If you close the browser or navigate away, your position is preserved.

Video Metadata

Below the player, the detail page displays:
  • Title — Full video title
  • Completion status — Green “Completed” indicator when finished
  • Duration — Total video length
  • Category — Category badge linking to the category
  • Description — Full video description in a bordered section
Super admins see an Edit button that links to the management interface.

Management Interface

The management interface at /knowledge-base/manage is restricted to super admins. It provides three tabs for organizing content.
Only super admin users can access the management interface. Non-super-admin users are redirected to the auctions page.

Categories Tab

The Categories tab displays all categories in a sortable list with drag-and-drop reordering.

Viewing Categories

Each category row shows:
ElementDescription
Drag handleGrip icon for drag-and-drop reordering
NameCategory name with folder icon
DescriptionCategory description (truncated)
Video countBadge showing number of videos in the category
ActionsEdit and Delete buttons

Adding a Category

1

Click Add Category

Click the Add Category button at the top of the Categories tab.
2

Enter Category Details

Fill in the category name (required, max 100 characters) and an optional description (max 500 characters).
3

Save

Click Create to add the category. The category appears immediately via optimistic update.

Editing a Category

1

Click Edit

Click the Edit button (pencil icon) on the category row.
2

Modify Details

Update the name or description in the edit modal.
3

Save Changes

Click Save to apply changes.

Deleting a Category

1

Click Delete

Click the Delete button (trash icon) on the category row.
2

Confirm Deletion

Review the confirmation dialog. Videos in this category will become uncategorized — they are not deleted.
3

Confirm

Click Delete to remove the category.
Deleting a category does not delete its videos. Videos are moved to an uncategorized state and remain accessible in the library.

Reordering Categories

Drag categories using the grip handle to reorder them. The new display order is saved automatically when you drop the item. Keyboard users can reorder using Tab to focus the handle, Space to pick up, arrow keys to move, and Space to drop.

Tags Tab

The Tags tab lets you create colored tags to classify and filter videos. Tags are separate from categories and provide an additional dimension of organization.

Tag Scoping

Tags follow the same scoping rules as videos:
  • Global tags — Created by super admins in the global Knowledge Base management interface. Can be assigned to any video.
  • Auction-scoped tags — Created by auction owners/admins. Only visible to auction members and assignable to videos in the same auction.

Viewing Tags

Each tag row shows:
ElementDescription
Drag handleGrip icon for drag-and-drop reordering
Tag badgeColored pill showing the tag name and color
Video countNumber of videos using this tag
ActionsEdit and Delete buttons

Adding a Tag

1

Click Create Tag

Click the Create Tag button at the top of the Tags tab.
2

Enter Tag Name

Fill in the tag name (required, max 50 characters). Example: “Safety”, “Training”, “Compliance”.
3

Select a Color

Choose a color from the predefined palette (10 colors). A live preview of the tag badge updates as you type and select.
4

Create

Click Create Tag to add the tag. It appears immediately in the tag list.

Editing a Tag

1

Click Edit

Click the Edit button (pencil icon) on the tag row.
2

Modify Name or Color

Update the tag name or select a different color. The tag scope cannot be changed after creation.
3

Save Changes

Click Save Changes to apply updates.

Deleting a Tag

1

Click Delete

Click the Delete button (trash icon) on the tag row.
2

Review Warning

The confirmation dialog shows how many videos currently use this tag. Deleting the tag removes the assignment but does not delete any videos.
3

Confirm

Click Delete Tag to remove the tag and all its video assignments.
Deleting a tag does not delete its videos. Videos simply lose the tag assignment and remain in the library.

Reordering Tags

Drag tags using the grip handle to reorder them. The new display order is saved automatically. Tags appear in this order in the mobile tag filter sheet and on video cards.

Assigning Tags to Videos and Shorts

Tags are assigned to videos and Shorts through their respective edit modals:
1

Edit a Video or Short

Click Edit on any video in the Videos tab or any Short in the Shorts tab.
2

Open the Tags Picker

In the edit modal, find the Tags section with a multi-select dropdown.
3

Toggle Tags

Click tags to assign or remove them. Changes save immediately — no need to submit the form.
Both videos and Shorts can have multiple tags. Tags appear as colored badges on video cards and Short cards in both the admin browser and the mobile app. Tag filtering in the viewer applies to both videos and Shorts.

Videos Tab

The Videos tab displays all videos grouped by category, with drag-and-drop reordering within groups. A search and filter toolbar helps you quickly find specific videos to manage.

Search and Filter

The Videos tab provides three ways to find content within the management interface:
Type in the search bar at the top of the Videos tab to filter videos by title or description. Search uses a 300ms debounce to avoid excessive filtering. A screen reader live region announces the result count as you type. Click the X button or clear the field to reset.
Click category filter chips below the search bar to show only videos in that category. An All chip shows the full library. Each chip displays the video count for that category. Click a selected category chip again to deselect it. An Uncategorized chip appears when uncategorized videos exist.
Click the tag icon button next to the search bar to open a popover with multi-select checkboxes. Select one or more tags to show only videos that have at least one of the selected tags (OR logic). A badge on the tag icon indicates how many tags are active. Click Clear all to reset tag filters. A Manage tags link provides quick access to the Tags tab.
When any filters are active, a summary bar shows “Showing X of Y videos” with a Clear filters button to reset all active filters at once.

Viewing Videos

Videos are organized under collapsible category headers. Each video row shows:
ElementDescription
Drag handleGrip icon for reordering within the category
ThumbnailSmall preview image (120×68px) or placeholder
DurationOverlay badge on the thumbnail
TitleVideo title
DescriptionVideo description (truncated)
Published statusBadge showing “Published” or “Draft” with toggle switch
ActionsEdit and Delete buttons

Adding a Video

1

Click Add Video

Click the Add Video button at the top of the Videos tab.
2

Enter YouTube URL

Paste the YouTube video URL. The system validates the URL and automatically extracts the video ID.
3

Review Auto-Fetched Metadata

The title field is automatically populated from YouTube metadata after a 500ms debounce. You can edit it if needed.
4

Complete Optional Fields

Add a description (max 1000 characters), select a category from the dropdown, and set the published state (defaults to published).
5

Save

Click Create to add the video. It appears immediately via optimistic update.
You can paste any standard YouTube URL format — full URLs (youtube.com/watch?v=...), short URLs (youtu.be/...), and embed URLs are all supported.

Editing a Video

1

Click Edit

Click the Edit button (pencil icon) on the video row.
2

Modify Details

Update the title, description, category, or published status. The YouTube URL cannot be changed after creation.
3

Save Changes

Click Save to apply changes.
The YouTube URL is read-only after a video is created. To use a different video, delete the existing entry and create a new one.

Deleting a Video

1

Click Delete

Click the Delete button (trash icon) on the video row.
2

Review Warning

The confirmation dialog warns that all user progress data for this video will be permanently deleted.
3

Confirm

Click Delete to remove the video and all associated progress records.
Deleting a video permanently removes all user progress data for that video. This action cannot be undone. Users will lose their watch history and completion status.

Publishing and Unpublishing

Toggle the switch on any video row to change its published state:
  • Published — Video is visible to all users in the video browser
  • Draft — Video is hidden from regular users but visible to super admins in the management interface

Reordering Videos

Drag videos within a category group to reorder them. The new display order is saved when you drop the item. Videos can only be reordered within their current category.

Shorts Tab

The Shorts tab manages YouTube Shorts — short-form vertical videos designed for quick, bite-sized training content. Shorts are displayed in a dedicated swipe feed on the mobile app.

Viewing Shorts

Shorts are organized under collapsible category headers, similar to videos. Each Short row shows the same elements as regular videos (thumbnail, title, description, published status, and action buttons).
Shorts are distinguished from regular videos by their content_type field. The same categories can contain both videos and Shorts, but they are managed separately in the interface.

Adding a Short

1

Click Add Short

Click the Add Short button at the top of the Shorts tab.
2

Enter YouTube Shorts URL

Paste the YouTube Shorts URL. The system validates the URL and extracts the video ID. Standard YouTube URL formats are also accepted.
3

Review Auto-Fetched Metadata

The title field is automatically populated from YouTube metadata after a 500ms debounce. A vertical (9:16) thumbnail preview is displayed. You can edit the title if needed.
4

Complete Optional Fields

Add a description (max 1000 characters), select a category from the dropdown, and set the published state (defaults to published).
5

Save

Click Create to add the Short. It appears immediately via optimistic update. The content_type is automatically set to short.
You can paste YouTube Shorts URLs (youtube.com/shorts/...), standard YouTube URLs (youtube.com/watch?v=...), or short URLs (youtu.be/...). The system detects the content type from the URL format.

Editing a Short

1

Click Edit

Click the Edit button (pencil icon) on the Short row.
2

Modify Details

Update the title, description, category, tags, or published status. The YouTube URL cannot be changed after creation.
3

Assign Tags

Use the Tags picker to assign or remove tags. Tag changes save immediately — no need to submit the form.
4

Save Changes

Click Save to apply changes.

Deleting a Short

1

Click Delete

Click the Delete button (trash icon) on the Short row.
2

Review Warning

The confirmation dialog warns that all user viewed data for this Short will be permanently deleted.
3

Confirm

Click Delete to remove the Short and all associated progress records.

Shorts vs. Videos

AspectVideosShorts
FormatHorizontal (16:9)Vertical (9:16)
PlaybackDetail page with controlsFull-screen swipe feed
ProgressSeconds watched, 90% auto-completeBinary viewed/not-viewed
LoopingNoYes, loops continuously
ControlsStandard YouTube controlsNo visible controls
OrientationSupports landscape fullscreenLocked to portrait
TagsAssignable via edit modalAssignable via edit modal

Auction-Scoped Video Management

Auction owners and admins can manage training videos scoped to their specific auction. These videos appear in the auction’s Knowledge Base tab alongside global videos but are only visible to members of that auction.

How Auction-Scoped Videos Work

  • Scoped visibility — Auction videos are only visible to members of the auction they belong to
  • Combined view — When viewing an auction’s Knowledge Base, members see both global videos and auction-specific videos in one unified list
  • Shared categories — Auction videos use the same global category taxonomy managed by super admins
  • Independent management — Auction owners/admins manage their videos independently without affecting global content
  • Same progress tracking — Progress is tracked identically for both global and auction-scoped videos

Managing Auction Videos

1

Navigate to the Auction

Select the auction from the sidebar navigation.
2

Open Knowledge Base

Click the Knowledge Base tab within the auction. The page displays all videos accessible to the auction — both global and auction-scoped.
3

Add a Video

Click Add Video to create a new auction-scoped video. The workflow is the same as adding a global video — paste a YouTube URL, review the auto-fetched title, and optionally set a category and description. The video is automatically scoped to the current auction.
4

Edit or Delete

Use the edit (pencil) and delete (trash) buttons on any auction-scoped video to modify or remove it. You cannot edit or delete global videos from the auction context.
Auction owners and admins can only manage videos belonging to their auction. Global videos are read-only in the auction context. To manage global videos, a super admin must use the Settings > Knowledge Base management interface.

Global vs. Auction-Scoped Videos

AspectGlobal VideosAuction-Scoped Videos
VisibilityAll authenticated usersAuction members only
Managed bySuper adminsAuction owner/admin
Admin locationSettings > Knowledge Base > ManageAuction > Knowledge Base
CategoriesGlobal shared categoriesSame global categories
Progress trackingPer userPer user (identical)
Shorts supportYesYes
TagsGlobal tagsGlobal tags + auction-scoped tags
Deletion cascadeDeleting the video removes progressSame, plus deleted if auction is deleted

Progress Tracking Details

The Knowledge Base automatically tracks viewing progress for each user. Here is how progress tracking works under the hood.

How Progress Is Saved

Every 10 seconds during video playback, the current watch position is saved to the database. This ensures minimal data loss if the user closes the browser unexpectedly.
Progress is also saved when the video is paused or playback state changes (playing, paused, ended).
When the user navigates away or closes the tab, a final progress save is triggered via the browser’s beforeunload event.
When a user’s watched_seconds reaches 90% or more of the video’s duration_seconds, the video is automatically marked as completed with a timestamp.

Progress Data

Each progress record tracks:
FieldDescription
watched_secondsTotal seconds the user has watched
completedWhether the video is marked as completed
completed_atTimestamp when the video was completed (null if not completed)
last_watched_atTimestamp of the most recent watch session
Progress is stored per user per video. Each user has independent progress that is not visible to other users or administrators.

Database Schema

The Knowledge Base uses five database tables. Categories are global, videos support both global and auction-scoped content, progress is tracked per user, and tags provide additional classification with many-to-many video associations.

knowledge_base_categories

Stores video categories for organizing content. Categories are global and shared across all scopes.
ColumnTypeDescription
idUUIDPrimary key
nameTEXTCategory name (required)
descriptionTEXTOptional description
display_orderINTSort order for display (default: 0)
created_atTIMESTAMPTZCreation timestamp
updated_atTIMESTAMPTZLast update timestamp (auto-managed)

knowledge_base_videos

Stores video and Shorts entries with YouTube metadata. Supports both global and auction-scoped content via the auction_id column.
ColumnTypeDescription
idUUIDPrimary key
auction_idUUIDForeign key to auctions (nullable, CASCADE on delete). NULL = global video, set = auction-scoped
category_idUUIDForeign key to categories (nullable, SET NULL on delete)
titleTEXTVideo title (required)
descriptionTEXTOptional description
youtube_urlTEXTFull YouTube URL (required)
youtube_video_idTEXTExtracted YouTube video ID (required)
thumbnail_urlTEXTCustom or YouTube thumbnail URL
duration_secondsINTVideo duration in seconds
display_orderINTSort order within category (default: 0)
is_publishedBOOLEANWhether visible to users (default: true)
content_typeTEXTContent type: video (default) or short
created_atTIMESTAMPTZCreation timestamp
updated_atTIMESTAMPTZLast update timestamp (auto-managed)
The auction_id column determines video scope:
  • NULL — Global video, visible to all users, managed by super admins
  • UUID — Auction-scoped video, visible to auction members, managed by auction owner/admin
  • When an auction is deleted, all its scoped videos are automatically removed via CASCADE

user_video_progress

Tracks per-user viewing progress for each video. Progress works identically for both global and auction-scoped videos.
ColumnTypeDescription
idUUIDPrimary key
user_idUUIDForeign key to auth.users (CASCADE on delete)
video_idUUIDForeign key to videos (CASCADE on delete)
watched_secondsINTSeconds watched (default: 0)
completedBOOLEANWhether completed (default: false)
completed_atTIMESTAMPTZCompletion timestamp (nullable)
last_watched_atTIMESTAMPTZLast watch session timestamp
Constraint: UNIQUE(user_id, video_id) — One progress record per user per video.

knowledge_base_tags

Colored tags for classifying knowledge base videos. Supports both global and auction-scoped tags.
ColumnTypeDescription
idUUIDPrimary key
auction_idUUIDForeign key to auctions (nullable, CASCADE on delete). NULL = global tag, set = auction-scoped
nameTEXTTag display name (required, unique within scope)
colorTEXTHex color code for visual display (default: #6B7280)
display_orderINTSort order for display (default: 0)
created_atTIMESTAMPTZCreation timestamp
updated_atTIMESTAMPTZLast update timestamp (auto-managed)
Constraint: Unique tag names within scope — global tags are unique among global tags, and auction tags are unique within their auction.

knowledge_base_video_tags

Junction table linking videos to tags (many-to-many). A database trigger enforces scope consistency — auction-scoped tags can only be assigned to videos in the same auction.
ColumnTypeDescription
video_idUUIDForeign key to knowledge_base_videos (CASCADE on delete)
tag_idUUIDForeign key to knowledge_base_tags (CASCADE on delete)
created_atTIMESTAMPTZAssignment timestamp
Constraint: PRIMARY KEY(video_id, tag_id) — One assignment per video-tag pair.

Row-Level Security

  • SELECT: All authenticated users can view categories
  • INSERT/UPDATE/DELETE: Requires is_any_auction_admin_or_above() — user must be a super admin or an admin/owner of any auction
Global videos (auction_id IS NULL):
  • SELECT: All authenticated users see published global videos; super admins and auction admins see unpublished global videos
  • INSERT/UPDATE/DELETE: Requires is_super_admin()
Auction-scoped videos (auction_id IS NOT NULL):
  • SELECT: Auction members see published videos; auction owner/admin see all videos (published and unpublished) for their auction
  • INSERT/UPDATE/DELETE: Requires is_auction_admin_or_above(auction_id) — user must be the owner or an admin of the specific auction
Global tags (auction_id IS NULL):
  • SELECT: All authenticated users can view global tags
  • INSERT/UPDATE/DELETE: Requires is_super_admin()
Auction-scoped tags (auction_id IS NOT NULL):
  • SELECT: Auction members can view their auction’s tags
  • INSERT/UPDATE/DELETE: Requires is_auction_admin_or_above(auction_id)
  • SELECT: Users can view tag assignments for videos they can see
  • INSERT/DELETE: Super admins manage global video tag assignments; auction owner/admin manage their auction’s video tag assignments
  • SELECT/INSERT/UPDATE/DELETE: Users can only access their own progress records (user_id = auth.uid())
  • Progress policies are unchanged — they apply equally to global and auction-scoped videos

Key Components

The admin Knowledge Base feature is built from the following components:

Viewer Components

ComponentPurpose
KnowledgeBaseViewerMain video browser with search, filter, and progress
VideoDetailSingle video page with player and metadata
VideoPlayerYouTube IFrame API player with progress tracking
VideoCardVideo thumbnail card for the grid
ProgressSummaryOverall completion progress bar
ContinueWatchingHorizontal list of in-progress videos
KnowledgeBaseSearchDebounced search input with accessibility
CategoryFilterCategory chip filter with keyboard navigation

Management Components

ComponentPurpose
KnowledgeBaseManageTabsTab container for Categories, Tags, Videos, and Shorts
CategoriesManagementCategory list with CRUD operations
CategoriesListDrag-and-drop sortable category list
AddCategoryModalForm dialog for creating categories
EditCategoryModalForm dialog for editing categories
DeleteCategoryDialogConfirmation dialog for category deletion
VideosManagementVideo list with CRUD, grouping, search, tag filter, and category filter
VideosListDrag-and-drop sortable video list by category
AddVideoModalForm dialog for adding videos with YouTube fetch
EditVideoModalForm dialog for editing video metadata
DeleteVideoDialogConfirmation dialog for video deletion
ShortsManagementShorts list with CRUD and category grouping
AddShortModalForm dialog for adding Shorts with vertical thumbnail preview
EditShortModalForm dialog for editing Short metadata and assigning tags
TagsManagementTag list with CRUD operations and drag-and-drop reordering
TagsListDrag-and-drop sortable tag list
CreateTagDialogForm dialog for creating tags with color picker and live preview
EditTagDialogForm dialog for editing tag name and color
DeleteTagDialogConfirmation dialog for tag deletion with usage count
VideoTagPickerMulti-select dropdown for assigning tags to videos and Shorts, with search for large tag sets

Troubleshooting

Ensure the YouTube URL is valid and the video is publicly accessible. Private or unlisted YouTube videos will not load in the embedded player. Check that your browser allows embedded content from YouTube.
Progress saves every 10 seconds during playback. If the video is paused immediately after starting, a save may not have occurred. Resume playback for at least 10 seconds to trigger a save. Check your network connection if saves fail.
Only published videos appear in the video browser. Check the management interface to verify the video’s published status. Draft videos are only visible to super admins in the management view.
The management interface at /knowledge-base/manage requires super admin access. If you are redirected, contact a super admin to verify your permissions.
Deleting a category moves its videos to uncategorized — videos are not deleted. If videos appear to be missing after a category deletion, check the uncategorized section in the management interface.
The title auto-fetched from YouTube may not match your preferred title. Edit the title field manually before saving. The auto-fetch uses a 500ms debounce, so wait briefly after pasting the URL.
Drag-and-drop reordering uses the grip handle on the left side of each row. Click and hold the grip icon (six dots) to initiate dragging. Keyboard users can use Tab to focus, Space to pick up, arrow keys to move, and Space to drop.
Videos are marked complete at 90% watched. If the video’s duration_seconds is not set (null), auto-completion cannot be calculated. Re-add the video or update the duration in the database if needed.
Auction-scoped videos are only visible to members of the auction they belong to. Verify the user is an active member of the auction. Also check that the video is published — draft auction videos are only visible to the auction owner/admin.
Only the auction owner or an auction admin can add, edit, or delete auction-scoped videos. Regular auction members can only view published content. Contact the auction owner to be promoted to admin, or ask a super admin for assistance.

Best Practices

  • Create clear category names that reflect training topics
  • Keep category descriptions concise and informative
  • Order categories by importance or learning sequence using drag-and-drop
  • Limit categories to a manageable number (5–15 recommended)
  • Use descriptive titles that clearly indicate the video content
  • Add descriptions to provide context about what users will learn
  • Set videos as draft while preparing content, then publish when ready
  • Order videos within categories to create a logical learning path
  • Add videos as drafts first to review metadata before publishing
  • Verify the YouTube video is publicly accessible before publishing
  • Use the published/draft toggle to temporarily hide videos without deleting them
  • Review the video browser as a regular user to verify the experience
  • Each user’s progress is private and independent
  • The 90% completion threshold accounts for users who skip intros or outros
  • Progress persists across sessions — users can resume where they left off
  • Deleting a video permanently removes all user progress for that video
  • Use global videos for training that applies to all auctions (company-wide policies, general procedures)
  • Use auction-scoped videos for content specific to a particular auction (site-specific procedures, local training)
  • Auction-scoped videos are automatically deleted when an auction is removed
  • Members see auction videos alongside global ones — avoid duplicate content across scopes