🔧 Admin Login

Dashboard

🩺 Speed diagnostics
Times the real database queries so we can tell if slowness is the DB, the network, or the app.

Activity (last 30 days)

🎤 Top Lecturers

LecturerPlays

📖 Top Masechtos

MasechtaViews

👥 Top Users

UserActivity

📤 Recent Uploads

DafLecturerTypeUploaded

Drag files here or click to select

Audio (MP3, M4A, WAV, OGG, FLAC, MP4, WebM...) or PDF · Naming: LL_masechta_daf[a/b].ext

Non-MP3 audio is auto-converted to 128 kbps MP3 on the server

Or paste a link

Works with Dropbox, Google Drive, or any direct file URL. File must be publicly shared.

Upload a PDF or audio (MP3) chart, quiz, or summary tied to a daf range. Choose where it appears: across all its pages, the last page, a specific page, on review days, or on test days. No lecturer needed.

Existing charts

MasechtaTitleRangePlacementActions
⟁ Google Drive
Loading…
📦 Dropbox
Loading…

+ Add a folder

Pick the provider, then paste a Drive folder ID/URL or a Dropbox path. Set a default lecturer + masechta for shared folders.

Monitored folders

Provider Label Defaults Mode Actions

Recent activity

Combined intake history across Drive and Dropbox — newest first.

When Src File Status Detail

All uploaded lectures across masechtos. Edit to fix metadata (daf, amud, lecturer, title). Delete removes the file from storage.

MasechtaDafAmudLecturerType TitleVersionDurationSizePlaysUploadedActions

Enable a masechta to make it browsable in the app's ספריה tab. Text harvesting (Gemara/Rashi/Tosfos) lives in the Harvesting tab.

מסכתSlugDapimStatusActions

The calendar_cache table holds pre-computed Hebrew date, parsha, and yom-tov info for each Gregorian day from June 2025 through end of 2037. Once populated, the app reads from this table everywhere — no live Hebcal calls at request time. Hebcal stays as fallback for dates not in the cache.

Run the backfill once. It takes ~5–10 min and is idempotent (existing rows are skipped, safe to re-run any time).

Backfill status
Loading…
Loading...

📂 Monitored Folders

Add a folder ID (or paste full Drive URL). For your own inbox: filenames must match CODE_masechta_daf.ext. For a lecturer's shared folder: pick a default lecturer + masechta and any filename works (daf number extracted from name).

Label Defaults Mode Actions

⏳ Waiting

Files in Drive that haven't been evaluated yet. Files with parseable names auto-upload on the next poll. Click Pull to import a file immediately.

File name Folder Date Action
📋 Tried

Files the auto-poller looked at but didn't import (couldn't parse, v1 already exists, etc.). Click Pull to import manually.

File name Folder Date Last attempt Action

📜 Recent Activity

TimeFileStatusDetail
Loading...

📂 Monitored Folders

Add a Dropbox folder path (e.g. /lectures/eruvin; leave blank for the root) or paste a shared-folder link for a folder shared with you. For your own inbox: filenames must match CODE_masechta_daf.ext. For a lecturer's shared folder: pick a default lecturer + masechta and any filename works. (Shared-link folders are never deleted from, even if "delete after" is checked.)

Label Defaults Mode Actions

⏳ Waiting

Files in Dropbox that haven't been evaluated yet. Parseable names auto-upload on the next poll. Click Pull to import immediately.

File name Folder Action
📋 Tried

Files the auto-poller looked at but didn't import. Click Pull to import manually.

File name Folder Last attempt Action

📜 Recent Activity

TimeFileStatusDetail
Name Email Joined Last login Progress Actions

⚠️ Harvesting pulls Gemara / Rashi / Tosfos text from Sefaria into the database. It runs in the background and can take 30+ minutes per masechta. You normally only run this once per masechta.

📅 Calendar Cache
Pre-compute ~12 years of Hebrew dates. Run once, then leave it.

Per-masechta harvest controls. Enable a masechta in the Masechtos tab first, then harvest its text here.

מסכתSlugCoverageActions