Manajemen Konten & Kompetisi
Panduan halaman Manajemen Kuis, Persetujuan Kuis, Library Game, Blog CMS, Sesi Membaca Blog, Grup Komunitas, Kategori, dan Manajemen Turnamen Kompetisi.
Manajemen Konten & Kompetisi
Kategori ini memuat dokumentasi seluruh fitur pengelolaan materi kuis edukasi, artikel blog, direktori pustaka game, grup komunitas lobi chat, kategori global, dan sistem administrasi turnamen kompetisi.
1. Kuis (/quizzes)
Modul untuk mengelola bank kuis yang diunggah oleh pembuat kuis (kreator).
- Daftar Master Kuis: Menampilkan ID kuis, judul, deskripsi, kategori, bahasa, jumlah soal, status visibilitas (publik/privat), dan nama pembuat.
- Editor Soal (JSON Viewer): Menampilkan susunan soal, opsi jawaban, gambar soal, dan kunci jawaban kuis dalam format data terstruktur.
- Penyembunyian Kuis (
is_hidden = true): Mengarsipkan kuis bermasalah dari daftar publik agar tidak dapat dimainkan oleh pengguna umum.
2. Persetujuan Kuis (/quiz-approval)
Gerbang kurasi konten untuk memeriksa kuis baru yang diajukan oleh pengguna sebelum dirilis secara publik.
- Antrean Pengajuan: Menampilkan kuis baru yang membutuhkan persetujuan beserta profil pengunggahnya.
- Persetujuan Kuis (
Approve): Mengubah status kuis menjadi aktif dan disetujui, menjadikannya muncul di direktori kuis publik. - Penolakan Kuis (
Reject): Mengubah status menjadi ditolak. Admin dapat memilih templat alasan penolakan (misalnya mengandung unsur SARA atau duplikat) dari modul rejection-templates. Alasan penolakan ini akan dikirimkan sebagai notifikasi umpan balik kepada kreator kuis.
3. Pustaka Game (/games / /manage-games)
Manajemen direktori katalog game utama yang dimainkan dalam ekosistem GameForSmart.
- Metadata Game: Mengedit judul game, slug URL, genre, deskripsi, tautan bermain (
play_url), video panduan, screenshot, logo, dan gambar sampul. - Pengaturan Fitur & Karakter (JSON arrays): Mengisi daftar fitur unik game, panduan cara bermain (how to play), serta pilihan karakter hero/pengejar (beserta deskripsi kecepatan, nyawa, dan akurasi masing-masing karakter) dalam bentuk array JSON terstruktur.
4. Blog CMS (/blog / /manage-blog / /blog-sessions)
Pusat manajemen artikel publikasi untuk kebutuhan promosi dan pembaruan sistem.
- TipTap Rich Text Editor: Halaman pembuatan blog (
/manage-blog) dilengkapi dengan editor WYSIWYG kelas premium (TipTap) untuk menyusun format teks tebal, miring, garis bawah, perataan teks, menyisipkan gambar, dan tautan luar secara dinamis. - Pelacakan Pembaca Blog (
/blog-sessions):- Analisis Sesi Membaca: Melacak durasi membaca pengguna (dalam detik), kedalaman scroll halaman (scroll depth 0-100%), dan frekuensi interaksi pengguna saat membuka artikel.
- Sumber Rujukan (Referrer): Mencatat dari mana pembaca datang (misalnya Google, direct link, atau media sosial) serta user agent yang digunakan.
5. Grup Komunitas (/groups)
Modul untuk memantau ruang obrolan (lobby chat) grup komunitas yang dibuat oleh para pemain.
- Identitas Grup: Mengelola nama grup, deskripsi, gambar avatar/sampul, kode undangan (invite code), pembuat grup, serta statistik jumlah anggota.
- Log Aktivitas Grup (
group_activities): Mencatat setiap kejadian penting di dalam grup, seperti anggota baru yang bergabung, pergantian nama, atau aktivitas bermain bersama. - Pembersihan Chat Otomatis: Saat lobi dihapus, sistem akan membersihkan pesan obrolan terkait untuk menghemat ruang penyimpanan.
6. Kompetisi & Turnamen (/competition / /manage-competitions / /manage-sessions)
Modul terpenting untuk mengonfigurasi jalannya turnamen berskala besar.
- Formulir Kompetisi: Menentukan poster, nama turnamen, tanggal pendaftaran, durasi kualifikasi, biaya registrasi (Xendit integration), syarat aturan, dan total hadiah (prize pool).
- Penyusunan Babak & Klasemen (Rounds & Groups):
- Admin dapat menambahkan babak baru (misalnya: Kualifikasi -> Semifinal -> Final).
- Pada setiap babak, admin dapat membagi peserta menjadi beberapa klasemen grup (Standings) dan mengaitkan kuis kustom untuk dimainkan di grup tersebut.
- Sinkronisasi Real-Time & Cascading Delete:
- Saat menyimpan klasemen atau babak kuis melalui dialog kustom phase-group-stage.tsx, data langsung disinkronkan ke database.
- Jika admin menghapus suatu babak atau grup, sistem secara otomatis melakukan pembersihan cascading: menghapus entri room lobi di tabel
groupsdan sesi room di tabelgame_sessionsagar database bebas dari data sampah yatim piatu.