◾ Teachfluence Web
000102030405060708091011121314151617
SCORM · xAPI · cmi5 (Kurumsal LMS)
SCORM · xAPI · cmi5 (Kurumsal LMS)Mevcut
İçerik paketi kütüphanesi & yükleme · SCORM öğe ayarları · öğrenci raporu · skor panosu & en zor sorular · cmi5 AU hunisi · LRS ifade tarayıcı · xAPI kimlik bilgileri · Türkçe · Masaüstü (1440px, tam ekran) · Mevcut arayüzün birebir yakalanması
Mevcut Bugün canlıda olan, mevcut uygulamadan birebir yakalanmış ekranlar
Planlanan Ekibin daha sonra tasarlayıp ekleyeceği yeni ekranlar
Bir bandın sol kenarındaki turuncu şerit + “PLANLANAN” etiketi = henüz yapılmamış, önerilen ekran.
SCORM Öğesi · Kurs İçeriği İçi Editör (açılır panel)
SCORM, video/quiz gibi bir kurs içeriği türüdür — ayrı bir sayfa değil, kurs içeriği sekmesindeki (?tab=contents) bir içerik satırının açılır (Collapsible) panelidir. Panel paketin durumunu gösterir: SCORM Yükle (yok) · SCORM İşleniyor · SCORM İşleme Hatası · Hazır. Hazır olunca salt-okunur meta verisi (Başlık · Sürüm · Tanımlayıcı · Giriş Noktası) ile “Raporu görüntüle” ve “Yeni SCORM Paketi Yükle” aksiyonları belirir. Kaynak: CourseAdminItemScorm · ScormPackage fragmenti. Gate: COURSE_CONTENT_EDIT (rapor: COURSE_ANALYTICS_VIEW).
Kurs içeriği → SCORM öğesi · Hazır (açık panel)
teachfluence
9+
AU
Kurs İçeriğiGörevlerÖğrencilerEğitmenlerAyarlar
Bölüm 3 · Etkileşimli Modüller
2/2 hazır
SCORM
Etkileşimli Modül
Öğrenciye görünür
Detayları gizle
SCORM Ayarlarını Gizle
SCORM Paketi Hazır
Bilişsel Psikoloji Modülü (v3)
Başlık
Bilişsel Psikoloji Modülü
Sürüm
SCORM 1.2
Tanımlayıcı
com.flu.psi.cog-01
Giriş Noktası
index_lms.html
Raporu görüntüle
Yeni SCORM Paketi Yükle
cmi5
Klinik Vaka Serisi
Öğrenciye görünür
Detayları göster
Meta veriler manifestten okunur ve salt okunurdur — bu panelde masteryScore/süre sınırı gibi alanlar düzenlenmez. “Raporu görüntüle” yalnız COURSE_ANALYTICS_VIEW yetkisi olan personele görünür ve ScormItemReportContent diyaloğunu açar. Panel forceMount’ludur; kapatılınca yalnız trigger rozeti kalır.
Trigger rozetleri (durumlar) + hata ayrıntısı
Kapalı panel · trigger durumları
SCORM Yüklepaket yok
Yükleniyor… 64%yükleme sürüyor (animate-pulse)
SCORM İşleniyoraçılıyor (spin)
SCORM İşleme Hatasıbaşarısız
Bilişsel Psikoloji Modülü (v3)hazır
Açık panel · İşleme Hatası
İşleme Hatası
imsmanifest.xml bulunamadı — ZIP kök dizininde manifest yok.
Personel (showErrorDetail) ham processingError metnini görür; öğrenciye genel mesaj (“SCORM paketi işlenirken bir hata oluştu.”) gösterilir.
Yeni SCORM Paketi Yükle
Trigger rozeti shadcn Badge varyantlarıdır: destructive (yok/başarısız), secondary (yükleniyor/işleniyor), outline (hazır: {title} ({version})). Kapalıyken hata/yokluk durumları kırmızı metinle vurgulanır.

Paket Yükleyici · Uppy Panosu + Asenkron İşleme Durumu
Paket yok olduğunda (ya da “Yeni … Paketi Yükle” tıklanınca) açılır panelde bir Uppy Dashboard render edilir: sürükle-bırak alanı, tek .zip dosyası, en fazla 500 MB. Yükleme imzalı S3 URL’sine (50 MB üstü çok parçalı) yapılır. Yükleme bitince paket asenkron açılır; arayüz ScormPackageStatus/Cmi5PackageStatus ile durumu üstel gecikmeyle yoklar (3s→6s→12s→24s→30s, ~18 dk sonra zaman aşımı). Kaynak: ScormUploader · usePostUploadPolling. Gate: COURSE_CONTENT_EDIT.
Kurs içeriği → SCORM öğesi · Uppy yükleme panosu
SCORMEtkileşimli Modül
SCORM Yüklemeyi İptal Et
Dosyaları buraya bırakın ya da gözat
SCORM ZIP paketi yükle
1 dosya · yalnızca .zip · en fazla 500 MBUppy
Uppy kısıtları: allowedFileTypes: ['.zip', …], maxFileSize: 500MB, maxNumberOfFiles: 1. Dosya adı S3 anahtarı için sanitize edilir. Türkçe Uppy yerelleştirmesi (tr_TR) kullanılır; not metni: “SCORM ZIP paketi yükle”. cmi5 için not: “cmi5 ZIP paketini yükleyin”.
Asenkron yaşam döngüsü · durum uyarıları
SCORM Paketi Yüklendi
Yüklediğiniz SCORM paketi şu anda işleniyor. Bu işlem birkaç dakika sürebilir.
SCORM Paketi İşleniyor
Paket içeriği analiz ediliyor. Bu işlem birkaç dakika sürebilir.
Hâlâ işleniyor
Bu beklenenden uzun sürüyor. Beklemeye devam edebilir veya şimdi tekrar kontrol edebilirsiniz.
Tekrar kontrol et
İşleme Hatası
imsmanifest.xml bulunamadı — ZIP kök dizininde manifest yok.
Yükleme başarılı olunca üst öğe yeniden çekilir (usePostUploadPolling); yeni bağlanan paket gelince ScormPackageStatus devralıp paketin kendi PROCESSING→READY döngüsünü yoklar. Yoklama üst sınırı 40 denemedir (~18 dk); aşılırsa “Hâlâ işleniyor” + “Tekrar kontrol et” gösterilir. Bağlantı/işleme zaman aşımı ayrıca warning uyarısı olarak da yansıtılabilir.

cmi5 Öğesi · Meta Veri + Atanabilir Birimler (AU)
cmi5 de bir kurs içeriği türüdür (SCORM ile aynı açılır-panel deseni). Hazır olunca salt-okunur meta veri (Başlık · Kurs IRI) ve paketten çıkarılan Atanabilir Birimler listesi gösterilir; her AU’nun yanında tamamlama ölçütü (moveOn) rozeti bulunur: Geçildi · Tamamlandı · Tamamlandı ve geçildi · Tamamlandı veya geçildi · Geçerli değil. Kaynak: CourseAdminItemCmi5 · Cmi5Package.aus{title,moveOn} · useCmi5MoveOnLabel. Gate: COURSE_CONTENT_EDIT.
Kurs içeriği → cmi5 öğesi · Hazır (açık panel)
teachfluence
9+
AU
Kurs İçeriğiGörevlerÖğrencilerEğitmenlerAyarlar
cmi5
Klinik Vaka Serisi
Öğrenciye görünür
Detayları gizle
cmi5 Ayarlarını Gizle
cmi5 Paketi Hazır
Klinik Vaka Serisi
Başlık
Klinik Vaka Serisi
Kurs IRI
https://flu.co/xapi/clinic
Atanabilir Birimler
1 · Vaka TanıtımıTamamlandı
2 · Tanı Koyma AlıştırmasıTamamlandı ve geçildi
3 · Değerlendirme SınavıGeçildi
4 · Kapanış AnketiGeçerli değil
Raporu görüntüle
Yeni cmi5 Paketi Yükle
AU listesi ve moveOn rozetleri paketin manifestinden gelir, salt okunurdur. useCmi5MoveOnLabel beş Cmi5MoveOn değerini yerelleştirir; bilinmeyen (ileride eklenecek) bir değer ham token’a düşer, çökmez. Kurs IRI, LRS ifadelerindeki etkinlik IRI kökleriyle eşleşir.
moveOn (tamamlama ölçütü) değerleri + trigger durumları
Cmi5MoveOn → etiket
PASSEDGeçildi
COMPLETEDTamamlandı
COMPLETED_AND_PASSEDTamamlandı ve geçildi
COMPLETED_OR_PASSEDTamamlandı veya geçildi
NOT_APPLICABLEGeçerli değil
Kapalı panel · trigger durumları
cmi5 Yüklepaket yok
cmi5 İşleniyoraçılıyor
cmi5 İşleme Hatasıbaşarısız
Klinik Vaka Serisihazır (sürümsüz)
SCORM’dan farkı: hazır trigger rozeti yalnız {title} gösterir (cmi5’te sürüm alanı yok). Aynı moveOn etiketleri cmi5 raporunda “Tamamlama ölçütü” satırında da tekrar kullanılır (bkz. cmi5 Raporu bandı).

SCORM Raporu · Öğe Genel Bakış + En Zor Sorular
SCORM öğesindeki “Raporu görüntüle” bir diyalog (max-w-3xl) açar: dört KPI kartı (Oturum · Tamamlandı · Geçti · Ort. puan) ve altında En zor sorular — doğru oranı en düşük etkileşimler, her biri açılıp yanıt dağılımına (drill-down) genişleyebilir. Kaynak: ScormItemReportContent · scormItemOverview(courseItemId){totalSessions,completedCount,passedCount,averageScore,hardestQuestions{interactionId,totalResponses,correctRate}}. Personel-gate (arka uçta), aksi halde boş durum.
Kurs içeriği → SCORM öğesi → Raporu görüntüle (diyalog)
SCORM Raporu
Oturum
214
Tamamlandı
176
Geçti
141
Ort. puan
78,4
En zor sorular
q_04_conditioning%38 doğru184 yanıt
q_09_memory_types%44 doğru201 yanıt
q_02_scientific_method%51 doğru198 yanıt
q_11_biases%57 doğru173 yanıt
q_07_neurons%63 doğru169 yanıt
KPI kartları ReportStatCard (ikon + etiket + 2xl tabular değer). Ort. puan null ise “—” gösterilir. En zor sorular en fazla 10 satır; interactionId font-mono’dur (öğrenci-dostu metin değil, SCORM etkileşim kimliği). Bir satıra tıklanınca yanıt dağılımı açılır — bkz. Etkileşim Drill-down bandı.
Boş durum · henüz oturum yok
SCORM Raporu
Henüz oturum kaydı yok.
totalSessions === 0 ya da personel-dışı görüntüleyici (arka uçta gate’li) durumunda tek satırlık “Henüz oturum kaydı yok.” gösterilir — yetkisiz/verisiz aynı boş sonucu verir. En zor sorular listesi yalnız en az bir soru varsa render edilir.

Etkileşim Drill-down · Soru Yanıt Dağılımı
En zor sorular listesinde bir satır açıldığında o etkileşimin (soru) yanıt değeri dağılımı tembel yüklenir: her benzersiz yanıt için bir çubuk (yüzde), doğru yanıtlar yeşille işaretlenir ve “doğru” etiketi taşır. Kaynak: ScormQuestionDistributionContent · scormQuestionDistribution(courseItemId,interactionId){totalResponses,responses{response,count,correctCount}}. Boş yanıt “(boş)” olarak, kayıt yoksa “Yanıt kaydedilmedi.” olarak gösterilir.
En zor soru satırı açık · yanıt dağılımı
En zor sorular
q_04_conditioning%38 doğru184 yanıt
Pavlov’un köpekleridoğru70 (%38)
Skinner kutusu61 (%33)
Gözlemsel öğrenme39 (%21)
(boş)14 (%8)
q_09_memory_types%44 doğru201 yanıt
Doğru yanıt çubuğu yeşil (bg-green-500), diğerleri soluk primary (bg-primary/60). Yüzde count / totalResponses ile hesaplanır. Yanıt metni ham SCORM cevap değeridir (font-mono); null yanıt “(boş)” gösterilir. Her dağılım satır açıldığında ayrı sorgu ile tembel yüklenir (Suspense + yükleniyor iskeleti).
Yanıt yok durumu + drill mekaniği
Açık satır · yanıt yok
q_15_reserved%0 doğru0 yanıt
Yanıt kaydedilmedi.
Drill mekaniği
Genel rapor yalnızca özet sorguyu çeker; bir soru satırı açılana kadar dağılım sorgusu çalışmaz. Böylece diyalog hızlı açılır, ağır dağılım verisi yalnız incelenen soru için yüklenir.
Aynı bileşen hem “en zor sorular”ın drill-down’ı hem de tek soru inceleme yüzeyidir. totalResponses 0 ise “Yanıt kaydedilmedi.”; aksi halde yanıtlar en yüksek sayıdan aşağı listelenir.

cmi5 Raporu · AU Genel Bakış (Başlatıldı → Alındı → Karşılandı)
cmi5 öğesindeki “Raporu görüntüle” diyaloğu, başlatılan atanabilir birim için oturum ilerlemesini gösterir: bir Tamamlama ölçütü (moveOn) satırı ve dört KPI kartı — Oturum · Başlatıldı · Alındı · Karşılandı. Bu üç sayaç cmi5 yaşam döngüsünün (LAUNCHED → FETCHED → SATISFIED) ilerlemesidir. Kaynak: Cmi5ItemReportContent · cmi5AuOverview(courseItemId){totalSessions,launchedCount,fetchedCount,satisfiedCount,auIri,moveOn}.
Kurs içeriği → cmi5 öğesi → Raporu görüntüle (diyalog)
cmi5 Raporu
Tamamlama ölçütü:Tamamlandı ve geçildi
Oturum
168
Başlatıldı
168
Alındı
153
Karşılandı
119
Sayaçlar aynı başlatılan AU için ardışık aşamaları temsil eder: her Karşılandı oturumu daha önce Alındı ve Başlatıldı; aradaki fark hunideki düşüşü (drop-off) gösterir.
Aşamalar LRS ifadelerinden türetilir: launched (AU başlatıldı), fetched (yetki jetonu/durum alındı), satisfied (moveOn ölçütü karşılandı). moveOn yoksa üstteki ölçüt satırı gizlenir. Bu yüzeyde öğrenci-bazlı AU tablosu yoktur; birey düzeyi izleme ham ifadeler üzerinden LRS İfade Tarayıcı’dan yapılır (bkz. sonraki band).
Boş durum · henüz oturum yok
cmi5 Raporu
Henüz oturum kaydı yok.
totalSessions === 0 veya personel-dışı görüntüleyicide (arka uçta gate’li) tek satırlık “Henüz oturum kaydı yok.” gösterilir.

xAPI İfade Tarayıcı · LRS (Öğrenme Kayıt Deposu)
Ayarlar’ın xAPI sekmesindeki (son sekme) xAPI İfadeleri bölümü: kuruluşun LRS’inde saklanan ham xAPI ifadelerini filtreli inceler. Filtreler: Eylem IRI · Etkinlik IRI · Aktör · Kayıt · Başlangıç · Bitiş + “Geçersizleri dahil et”. Sütunlar: Eylem · Aktör · Etkinlik · Zaman · Kaynak · Geçersiz; satıra tıklayınca ham ifade JSON’u açılır. Sonsuz sayfalama (25’lik). Uygulanan filtreler URL’de tutulur (paylaşılabilir/geri-ileri). Kaynak: XapiStatementBrowser · xapiStatements bağlantısı. Gate: ORG_SETTINGS_VIEW.
Ayarlar → xAPI → xAPI İfadeleri · filtreler + ifade tablosu
teachfluence
9+
AU
Ayarlar
Organizasyon
Ekip
İçerik
Ödeme
Entegrasyonlar
xAPI
LRS Kimlik BilgilerixAPI İfadeleri
xAPI İfadeleri
Bu kuruluşun Öğrenme Kayıt Deposu'nda (LRS) saklanan ifadeleri inceleyin.
verbs/answered
Tümü
mailto:…
registration UUID
gg.aa.yyyy --:--
gg.aa.yyyy --:--
Geçersizleri dahil et
Uygula
Temizle
EylemAktörEtkinlikZamanKaynakGeçersiz
answeredmailto:ali.kaya@ornek.comq_04_conditioning3 dk öncePlatform
completedmailto:zeynep.demir@ornek.comclinic/au-211 dk öncePlatform
passedmailto:mert.can@ornek.comclinic/au-342 dk önceİstemci
launchedmailto:elif.ak@ornek.comclinic/au-11 sa öncePlatform
answeredmailto:can.yilmaz@ornek.comq_09_memory_types2 sa önceİstemciGeçersiz
12.480 ifadeden 25 tanesi yüklendi
Daha fazla yükle
Eylem/Etkinlik sütunları IRI’nin son parçasını gösterir (tam IRI title/tooltip’tedir). Kaynak rozeti: İstemci (harici kimlik bilgisiyle yazılan ifade) / Platform (uygulama içi oynatıcı). Geçersiz (voided/iptal) ifade kırmızı “Geçersiz” rozeti taşır ve yalnız “Geçersizleri dahil et” işaretliyse listeye girer. Filtre değişince bağlantı 1. sayfadan yeniden başlar; sonsuz kaydırmada da otomatik yüklenir.
Satır açık · ham ifade JSON’u + boş durum
EylemAktörZaman
answeredmailto:ali.kaya@…3 dk önce
{
  "actor": { "mbox": "mailto:ali.kaya@ornek.com" },
  "verb": { "id": ".../verbs/answered" },
  "object": { "id": ".../q_04_conditioning" },
  "result": { "success": true, "response": "choice_a" },
  "context": { "registration": "8f2c…d41" },
  "timestamp": "2026-07-10T09:21:03Z"
}
İfade bulunamadı.
Seçili filtrelerle eşleşen ifade yok. Filtreleri temizleyip tekrar deneyin.
Satır tıklaması ifadenin tam JSON’unu (statement) monospace pre içinde açar. LRS erişilemezse tablo bir hata durumu (“İfadeler yüklenemedi” + LRS kimlik bilgilerini kontrol et) gösterir.

LRS Kimlik Bilgileri · xAPI API Anahtarları (yalnız bir kez gösterilen sır)
Ayarlar’ın xAPI sekmesindeki ilk bölüm: harici xAPI istemcilerinin LRS’e ifade okuyup yazmak için kullandığı HTTP Basic kimlik bilgileri. Tablo: Etiket · Anahtar Kimliği (kopyala) · Kapsam · Oluşturulma · Son kullanım · Durum · İşlemler. Oluşturma sonrası gizli anahtar yalnızca bir kez gösterilir; kalıcı saklanmaz, tekrar getirilemez. İptal (revoke) anında kimlik doğrulamayı durdurur. Kaynak: OrganizationXapiCredentialsSettings · xapiCredentials / createXapiCredential / revokeXapiCredential. Gate: liste ORG_SETTINGS_VIEW, oluştur/iptal ORG_SETTINGS_EDIT.
Ayarlar → xAPI → LRS Kimlik Bilgileri · tablo
teachfluence
9+
AU
Ayarlar
Organizasyon
Ekip
İçerik
Ödeme
Entegrasyonlar
xAPI
LRS Kimlik BilgilerixAPI İfadeleri
LRS Kimlik Bilgileri
Harici xAPI istemcilerinin bu kuruluşun Öğrenme Kayıt Deposu'na (LRS) ifade okuyup yazmak için kullandığı HTTP Basic kimlik bilgilerini yönetin.
Kimlik bilgisi oluştur
EtiketAnahtar KimliğiKapsamOluşturulmaSon kullanımDurumİşlemler
Mobil uygulama lrs_9f3a2c İfade okuma ve yazma 2 ay önce 6 dk önce Etkin İptal et
Raporlama aracı (Power BI) lrs_1b77e0 Tam erişim 5 ay önce 3 gün önce Etkin İptal et
Harici izleyici (eski) lrs_04ad9c Yalnızca ifade yazma 1 yıl önce Hiç İptal edildi
Kapsam rozetleri: İfade okuma ve yazma (STATEMENTS_WRITE_READ) · Yalnızca ifade yazma (STATEMENTS_WRITE_ONLY) · Tam erişim (ALL). Durum: Etkin (success) / İptal edildi (destructive). “İptal et” yalnız etkin kimlik bilgilerinde ve ORG_SETTINGS_EDIT yetkisiyle görünür. Kimlik bilgisi yoksa kesikli çerçeveli anahtar ikonlu boş durum: “Henüz kimlik bilgisi yok.”
Oluştur diyaloğu · form
LRS kimlik bilgisi oluştur
xAPI istemcileri için yeni bir HTTP Basic kimlik bilgisi oluşturun. Gizli anahtar yalnızca bir kez gösterilir.
ör. Mobil uygulama, Raporlama aracı
İfade okuma ve yazma
İptal
Oluştur
Zod doğrulaması: etiket zorunlu (1–100 karakter). Kapsam üç değer arasından seçilir; varsayılan İfade okuma ve yazma. Gönderim başarılıysa diyalog aynı yerde “sır gösterme” moduna geçer.
Sır gösterme · yalnızca bir kez
Kimlik bilgisi oluşturuldu
Bunları şimdi kopyalayın — gizli anahtar tekrar gösterilmeyecek.
Bu gizli anahtar yalnızca bir kez gösterilir. Güvenli bir yerde saklayın; tekrar göremezsiniz.
lrs_9f3a2c
sk_live_7Qm2·············aF9x
Tamam
Sır yalnız bileşen state’inde tutulur (asla saklanmaz/yeniden çekilemez) ve diyalog kapanınca temizlenir. Her alanda tek-tık CopyButton. Başarı yanıtı secret/credential içermiyorsa (arka uç sözleşme ihlali) Sentry’ye yazılır ve “Kimlik bilgisi oluşturulamadı.” toast’ı gösterilir.
İptal onayı
Kimlik bilgisi iptal edilsin mi?
"Mobil uygulama" hemen kimlik doğrulamayı durduracak. Bu geri alınamaz.
İptal
İptal et
shadcn AlertDialog. Onay tıklaması varsayılan kapanışı engeller (preventDefault) ve diyalog mutasyon çözülene kadar açık kalır; başarıda “Kimlik bilgisi iptal edildi.” toast’ı ve satır durumu İptal edildi’ye döner. İptal edilen kimlik bilgisi silinmez — geçmiş için tabloda kalır, yalnız kimlik doğrulaması durur.