257 lines
18 KiB
Markdown
257 lines
18 KiB
Markdown
## **Dokumen Requirements Sistem: kreatiVortex - Platform Pembelajaran Tari Online**
|
|
|
|
**Versi:** 1.0 (Final)
|
|
**Tanggal:** 24 Mei 2024
|
|
**Status:** Disetujui untuk Pengembangan
|
|
|
|
---
|
|
|
|
### **1. Pendahuluan**
|
|
|
|
Dokumen ini mendefinisikan kebutuhan fungsional dan non-fungsional untuk pengembangan website **kreatiVortex**, sebuah platform pembelajaran Tari online. Platform ini dirancang untuk menghubungkan **Pendidik** (instruktur tari) dengan **Calon Pendidik** (peserta didik) dalam sebuah ekosistem pembelajaran yang interaktif, kolaboratif, dan terstruktur. Sistem ini memungkinkan kontribusi konten dari semua pengguna, sambil tetap menjaga kualitas kurikulum resmi di bawah pengawasan Administrator.
|
|
|
|
### **2. Tujuan Proyek**
|
|
|
|
* Menyediakan platform terpusat dan komprehensif untuk pembelajaran tari, dari teori dasar hingga praktik lanjutan.
|
|
* Memfasilitasi **Pendidik** dalam mengelola konten pembelajaran, mengelola kelas, dan memberikan bimbingan terstruktur kepada Calon Pendidik.
|
|
* Memberikan pengalaman belajar yang menarik dan partisipatif bagi **Calon Pendidik** melalui akses video, diskusi, dan penyerahan tugas.
|
|
* Membangun komunitas pembelajaran tari yang aktif melalui fitur berbagi video terbuka dan FGD.
|
|
* Menjaga integritas kurikulum dengan memisahkan konten komunitas (Beranda) dan konten resmi (Menu Navigasi).
|
|
|
|
### **3. Definisi Peran Pengguna (User Roles)**
|
|
|
|
Sistem akan memiliki empat peran utama dengan tingkatan akses yang berbeda:
|
|
|
|
1. **Administrator:**
|
|
* Pengelola tertinggi sistem dengan akses penuh.
|
|
* Bertanggung jawab atas manajemen pengguna (semua peran), verifikasi konten, dan pengaturan sistem.
|
|
* **Khusus Video:** Dapat mengunggah video dan memilih untuk menampilkannya di **Beranda** dan/atau di **Menu Navigasi** (Teori, Praktik, dll.). Memiliki otoritas penuh dalam mengelola konten kurikuler.
|
|
* Memoderasi seluruh platform.
|
|
|
|
2. **Pendidik (Educator):**
|
|
* Pembuat konten dan instruktur kelas.
|
|
* Dapat membuat dan mengelola kelas/instansi, memberikan tugas, serta memberikan umpan balik (revisi) kepada Calon Pendidik.
|
|
* **Khusus Video:** Dapat mengunggah video, namun video tersebut **secara default hanya akan tampil di Beranda**. Tidak dapat mempublikasikan video langsung ke kategori di Menu Navigasi.
|
|
* Memoderasi diskusi di kelas yang mereka kelola.
|
|
|
|
3. **Calon Pendidik (Prospective Educator / Student):**
|
|
* Peserta didik.
|
|
* Dapat mendaftar ke kelas, mengakses materi pembelajaran, mengunggah tugas, serta berpartisipasi dalam FGD dan forum.
|
|
* **Khusus Video:** Dapat mengunggah video (misalnya: video hasil praktik, video tugas, atau video berbagi), namun video tersebut **secara default hanya akan tampil di Beranda**.
|
|
|
|
4. **Umum (General User):**
|
|
* Pengguna dasar yang telah melakukan registrasi akun namun belum memilih role spesifik.
|
|
* Dapat mengakses Beranda (video komunitas) dan Forum Umum untuk diskusi terbuka.
|
|
* Dapat mengunggah video ke Beranda (misalnya: video latihan, video inspirasi, atau video berbagi).
|
|
* **Akses Terbatas:** Tidak dapat mengakses Menu Navigasi (Teori, Praktik, Template Makalah), Forum Group/Kelas, atau sistem Assignment.
|
|
* **Opsi Upgrade:** Dapat melakukan upgrade ke Pendidik atau Calon Pendidik kapan saja melalui dashboard.
|
|
* **Default State:** Role ini diberikan otomatis setelah pengguna menyelesaikan registrasi akun dasar (Nama, Email, Password).
|
|
|
|
### **4. Fitur-Fitur Utama (Functional Requirements)**
|
|
|
|
#### **4.1. Manajemen Pengguna & Autentikasi**
|
|
|
|
* **Halaman Awal (Landing Page):**
|
|
* Menampilkan informasi singkat tentang kreatiVortex.
|
|
* Memiliki tiga tombol utama: **Login**, **Register**, dan **Mulai Sekarang**.
|
|
* Tombol "Mulai Sekarang" akan mengarahkan pengguna ke halaman pendaftaran (Register).
|
|
* **Pendaftaran Akun (Register):**
|
|
* **Tahap 1 - Registrasi Akun Dasar:**
|
|
* Semua pengguna (baik yang akan menjadi Pendidik, Calon Pendidik, atau tetap Umum) melakukan pendaftaran akun terlebih dahulu dengan mengisi:
|
|
* Nama Lengkap
|
|
* Email
|
|
* Password
|
|
* Password Confirmation
|
|
* Setelah berhasil mendaftar, pengguna dapat login ke sistem.
|
|
* **Tahap 2 - Pemilihan Role (Opsional, dapat dilakukan kapan saja):**
|
|
* Setelah registrasi akun dasar, pengguna diberi default role **Umum** dan dapat login ke sistem.
|
|
* Pengguna dapat memilih untuk upgrade ke Pendidik atau Calon Pendidik saat pertama kali login, atau melakukannya nanti.
|
|
* **Catatan Penting:** Akses ke **Forum Group** hanya tersedia bagi pengguna yang sudah melakukan registrasi sebagai Pendidik atau Calon Pendidik. Pengguna dengan role Umum tetap dapat mengakses Forum Umum.
|
|
* Pengguna dapat memilih salah satu dari tiga opsi:
|
|
* **Tetap Umum** (melanjutkan dengan akses dasar)
|
|
* **Register sebagai Pendidik**
|
|
* **Join sebagai Calon Pendidik**
|
|
* **Form Registrasi sebagai Pendidik:**
|
|
* Instansi
|
|
* Nama Kelas (yang akan dibuat)
|
|
* Jenjang Mengajar: Rich Text Editor
|
|
* Tujuan Bergabung: Rich Text Editor
|
|
* Setelah mengisi form ini, role pengguna akan diset sebagai "Pendidik" dan dapat mengakses Forum Group.
|
|
* **Form Join sebagai Calon Pendidik:**
|
|
* Instansi
|
|
* Pilih Kelas (dari daftar kelas yang sudah dibuat oleh Pendidik)
|
|
* NIM (Nomor Induk Mahasiswa)
|
|
* Setelah mengisi form ini, role pengguna akan diset sebagai "Calon Pendidik" dan dapat mengakses Forum Group.
|
|
* **Login & Logout:**
|
|
* Halaman login untuk pengguna terdaftar dengan validasi email dan password.
|
|
* Sesi pengguna akan disimpan hingga mereka melakukan logout.
|
|
* Pengguna dengan role Umum tetap dapat mengakses Beranda, Forum Umum, dan konten umum, tetapi tidak dapat mengakses Forum Group, Menu Navigasi, atau sistem Assignment.
|
|
* **Dashboard/Profil Pengguna:**
|
|
* Setiap pengguna memiliki dashboard pribadi setelah login.
|
|
* Menampilkan informasi profil, riwayat aktivitas, kelas yang diikuti (untuk Calon Pendidik), atau kelas yang dikelola (untuk Pendidik).
|
|
* Untuk pengguna dengan role Umum, dashboard akan menampilkan opsi untuk "Tetap Umum", "Register sebagai Pendidik", atau "Join sebagai Calon Pendidik".
|
|
* Dashboard menampilkan informasi profil, riwayat aktivitas, kelas yang diikuti (untuk Calon Pendidik), atau kelas yang dikelola (untuk Pendidik).
|
|
|
|
#### **4.2. Beranda & Manajemen Video**
|
|
|
|
* **Beranda (Post-Login):**
|
|
* Menampilkan daftar video dari **semua role pengguna** (Administrator, Pendidik, Calon Pendidik, Umum) dalam bentuk grid atau list.
|
|
* Video di sini adalah agregasi konten dari seluruh komunitas.
|
|
* Video dapat difilter berdasarkan pengunggah, terbaru, atau terpopuler.
|
|
* **Halaman Detail Video:**
|
|
* Memutar video yang dipilih.
|
|
* Menampilkan informasi video: **Judul**, **Nama Pengunggah**, dan **Keterangan**.
|
|
* Terdapat **kolom komentar** di bawah video untuk interaksi antar pengguna.
|
|
* **Unggah Video (Upload Video):**
|
|
* **Semua role pengguna (Administrator, Pendidik, Calon Pendidik, Umum) dapat mengunggah video.**
|
|
* Form unggah video akan memiliki elemen-elemen berikut:
|
|
* **Pilihan Sumber Video (Radio Button):**
|
|
* **File Video Lokal:** Upload file video langsung dari device
|
|
* **Link YouTube:** Masukkan URL video YouTube untuk direct embedding (tanpa API key)
|
|
* **Jika memilih "File Video Lokal":**
|
|
* File video input (extension: MP4, AVI, MOV, WMV)
|
|
* Progress upload
|
|
* Comfirmasi kapasitas maksimal file
|
|
* **Jika memilih "Link YouTube":**
|
|
* Input URL YouTube
|
|
* Preview otomatis setelah memasukkan URL
|
|
* Validasi format URL YouTube
|
|
* Extract video ID untuk direct embedding
|
|
* Generate thumbnail dari YouTube video
|
|
* Embed video langsung tanpa API calls
|
|
* Judul Video
|
|
* Keterangan/Deskripsi
|
|
* **Opsi Penempatan Video (Hanya untuk Administrator):**
|
|
* Saat Administrator mengunggah (baik file lokal atau YouTube), akan ada opsi tambahan:
|
|
* Checkbox: "Tampilkan di Beranda" (Dicentang secara default).
|
|
* Dropdown/Checkbox: "Tampilkan di Menu" (dengan pilihan: "Teori", "Praktik", "Tidak Ada"). Administrator dapat memilih lebih dari satu kategori.
|
|
* **Untuk Pendidik dan Calon Pendidik:**
|
|
* Tidak ada opsi penempatan. Video yang diunggah (baik file lokal atau YouTube) akan otomatis masuk ke halaman Beranda.
|
|
|
|
#### **4.3. Menu dan Kategori Pembelajaran**
|
|
|
|
* **Menu Navigasi Utama:**
|
|
* **Beranda:** Menuju halaman utama daftar video komunitas.
|
|
* **Teori:** Menampilkan daftar video dan materi terkait teori tari (contoh: Pengetahuan dasar tari, Unsur utama gerak, dll.).
|
|
* **Praktik:** Menampilkan daftar video terkait praktik tari (contoh: Olah Tubuh, Imitasi Gerak, Gerak Dasar).
|
|
* **Template Makalah:** Halaman khusus untuk mengunduh template makalah/tugas yang disediakan oleh Administrator atau Pendidik.
|
|
* **Pengelolaan Konten Menu:**
|
|
* Menu "Teori" dan "Praktik" secara eksklusif hanya akan menampilkan video yang **diunggah dan diatur oleh Administrator**.
|
|
* **Pendidik** dapat mengusulkan video kepada Administrator untuk dipertimbangkan dimasukkan ke dalam menu, tetapi tidak bisa mempublikasikannya sendiri.
|
|
|
|
#### **4.4. Fitur Kolaborasi: Kelas dan Forum Group**
|
|
|
|
* **Manajemen Kelas/Instansi:**
|
|
* **Pendidik** dapat membuat, mengedit, dan menghapus kelas.
|
|
* **Calon Pendidik** dapat bergabung dengan kelas saat melakukan registrasi sebagai Calon Pendidik atau melalui fitur "Join Class" yang memerlukan persetujuan Pendidik.
|
|
* **Forum Group (Menggabungkan FGD dan Forum Tugas):**
|
|
* Forum Group adalah fitur diskusi dan kolaborasi yang terbagi menjadi **dua tipe**:
|
|
* **1. Forum Umum:**
|
|
* Dapat diakses oleh **semua pengguna** (termasuk yang belum memilih role).
|
|
* Berupa forum diskusi terbuka untuk berbagi informasi, tips, dan diskusi umum seputar tari.
|
|
* Semua pengguna dapat membuat topik baru (thread) dan membalas komentar.
|
|
* **2. Forum Group/Kelas:**
|
|
* **Hanya dapat diakses oleh pengguna yang sudah melakukan registrasi sebagai Pendidik atau Calon Pendidik dan tergabung dalam kelas tertentu.**
|
|
* Berupa forum diskusi berbasis teks di dalam setiap kelas.
|
|
* **Pendidik** dan **Calon Pendidik** yang tergabung dalam kelas dapat membuat topik baru (thread) dan membalas komentar.
|
|
* **Fitur Tugas & Revisi di dalam Forum Group/Kelas:**
|
|
* **Alur Kerja untuk Calon Pendidik:**
|
|
1. Melihat tugas yang diberikan oleh Pendidik di Forum Group/Kelas.
|
|
2. Mengunggah dokumen tugas dalam format **Word (.doc/.docx)**.
|
|
3. Menambahkan **komentar teks** sebagai keterangan tambahan.
|
|
* **Alur Kerja untuk Pendidik:**
|
|
1. Melihat daftar pengumpulan tugas dari Calon Pendidik.
|
|
2. Mengunduh dokumen Word yang dikirim.
|
|
3. Memberikan feedback dengan mengunggah **"Word Hasil Revisi"**.
|
|
4. Menambahkan **komentar teks** untuk menjelaskan revisi yang dilakukan.
|
|
* Sistem harus menampilkan dokumen asli dan dokumen revisi secara berdampingan atau terhubung untuk memudahkan perbandingan.
|
|
|
|
---
|
|
|
|
### **5. Tabel Ringkasan Hak Akses**
|
|
|
|
| Fitur / Aksi | Administrator | Pendidik | Calon Pendidik | Umum |
|
|
| :--- | :---: | :---: | :---: | :---: |
|
|
| **Upload Video (File Lokal)** | ✅ (Ya) | ✅ (Ya) | ✅ (Ya) | ✅ (Ya) |
|
|
| **Upload Video (YouTube Link)** | ✅ (Ya) | ✅ (Ya) | ✅ (Ya) | ✅ (Ya) |
|
|
| **Video Tampil di Beranda** | ✅ (Ya) | ✅ (Ya, Otomatis) | ✅ (Ya, Otomatis) | ✅ (Ya, Otomatis) |
|
|
| **Memilih Penempatan Video** | ✅ (Ya) | ❌ (Tidak) | ❌ (Tidak) | ❌ (Tidak) |
|
|
| **Video Tampil di Menu Navigasi** | ✅ (Ya, Bisa dipilih) | ❌ (Tidak) | ❌ (Tidak) | ❌ (Tidak) |
|
|
| **Akses Menu Navigasi (Teori/Praktik)** | ✅ (Ya) | ✅ (Ya, View) | ✅ (Ya, View) | ❌ (Tidak) |
|
|
| **Akses Forum Umum** | ✅ (Ya) | ✅ (Ya) | ✅ (Ya) | ✅ (Ya) |
|
|
| **Akses Forum Group/Kelas** | ✅ (Ya, Moderasi) | ✅ (Ya, Moderasi) | ✅ (Ya) | ❌ (Tidak) |
|
|
| **Membuat Kelas** | ✅ (Ya) | ✅ (Ya) | ❌ (Tidak) | ❌ (Tidak) |
|
|
| **Bergabung ke Kelas** | ✅ (Ya) | ✅ (Ya) | ✅ (Ya) | ❌ (Tidak) |
|
|
| **Membuat Tugas** | ❌ (Tidak) | ✅ (Ya) | ❌ (Tidak) | ❌ (Tidak) |
|
|
| **Upload Tugas (Word)** | ❌ (Tidak) | ✅ (Ya, Revisi) | ✅ (Ya, Pengumpulan) | ❌ (Tidak) |
|
|
| **Akses Template Makalah** | ✅ (Ya) | ✅ (Ya, Upload) | ✅ (Ya, Download) | ❌ (Tidak) |
|
|
| **Upgrade Role** | ❌ (Tidak, Max) | ❌ (Tidak) | ❌ (Tidak) | ✅ (Ya) |
|
|
| **Mengelola Pengguna Lain** | ✅ (Ya) | ❌ (Tidak) | ❌ (Tidak) |
|
|
|
|
---
|
|
|
|
### **6. Alur Pengguna (User Flows)**
|
|
|
|
* **Alur Pengguna Umum (Default Role):**
|
|
1. Mengunjungi halaman awal -> Klik "Daftar" -> Isi formulir registrasi akun dasar (Nama, Email, Password, Password Confirmation) -> Login dengan role Umum.
|
|
2. Dapat menjelajah Beranda, melihat video komunitas dari SEMUA role, mengupload video ke Beranda.
|
|
3. Dapat mengakses Forum Umum untuk berdiskusi.
|
|
4. Dapat melihat dashboard dengan opsi upgrade ke Pendidik atau Calon Pendidik.
|
|
5. **Akses Terbatas:** Tidak dapat mengakses Menu Navigasi (Teori, Praktik, Template Makalah), Forum Group/Kelas, atau sistem Assignment hingga melakukan upgrade role.
|
|
* **Alur Calon Pendidik:**
|
|
1. Mengunjungi halaman awal -> Klik "Daftar" -> Isi formulir registrasi akun dasar (Nama, Email, Password, Password Confirmation) -> Login.
|
|
2. Pilih "Join sebagai Calon Pendidik" (dapat dilakukan saat pertama login atau nanti) -> Isi formulir (Instansi, Pilih Kelas, NIM).
|
|
3. Di Beranda, menjelajah video dari komunitas (termasuk dari role Umum) dan video kurikuler di Menu.
|
|
4. Mengakses Forum Umum dan Forum Group/Kelas untuk berdiskusi.
|
|
5. Mengerjakan tugas di Forum Group/Kelas -> Upload Word + Komentar -> Tunggu revisi dari Pendidik.
|
|
6. Mengunggah video praktik pribadi ke Beranda.
|
|
* **Alur Pendidik:**
|
|
1. Mengunjungi halaman awal -> Klik "Daftar" -> Isi formulir registrasi akun dasar (Nama, Email, Password, Password Confirmation) -> Login.
|
|
2. Pilih "Register sebagai Pendidik" (dapat dilakukan saat pertama login atau nanti) -> Isi formulir (Instansi, Nama Kelas, Jenjang Mengajar, Tujuan Bergabung).
|
|
3. Membuat kelas baru -> Mengunggah video pembelajaran ke Beranda.
|
|
4. Mengusulkan video ke Administrator untuk dimasukkan ke Menu kurikuler.
|
|
5. Membuat topik diskusi di Forum Umum dan Forum Group/Kelas.
|
|
6. Membuat tugas di Forum Group/Kelas -> Menunggu pengumpulan -> Memberikan revisi.
|
|
* **Alur Administrator:**
|
|
1. Login dengan akun Administrator.
|
|
2. Memverifikasi Pendidik/Calon Pendidik baru (jika diperlukan).
|
|
3. Mengunggah video kurikuler dan menempatkannya di Menu Navigasi.
|
|
4. Meninjau usulan video dari Pendidik.
|
|
5. Mengelola konten dan pengguna jika ada masalah.
|
|
|
|
---
|
|
|
|
### **7. Persyaratan Non-Fungsional (Non-Functional Requirements)**
|
|
|
|
* **Performa:** Halaman harus dimuat dalam waktu < 3 detik. Video streaming harus lancar tanpa buffering yang signifikan. Embed video YouTube harus fast loading.
|
|
* **Keamanan:** Data pengguna (terutama NIM, password, dan dokumen pribadi) harus dienkripsi dan dilindungi. Sistem harus tahan terhadap serangan SQL Injection dan XSS. Menggunakan **Better Auth** framework untuk authentication modern dengan secure session management, role-based access control, dan protection terhadap common web vulnerabilities.
|
|
* **Usability:** Antarmuka harus intuitif dan mudah dinavigasi, bahkan untuk pengguna dengan kemampuan teknis dasar. Konsistensi desain di seluruh halaman.
|
|
* **Kompatibilitas:** Website harus responsif dan dapat diakses dengan baik di berbagai perangkat (desktop, tablet, mobile) dan browser modern (Chrome, Firefox, Safari).
|
|
* **Skalabilitas:** Arsitektur sistem harus dirancang untuk dapat menampung peningkatan jumlah pengguna, video, dan dokumen di masa depan.
|
|
* **Storage Management:**
|
|
* **File Video Lokal:** Dibutuhkan storage server yang cukup dengan kompresi video otomatis untuk menghemat space.
|
|
* **YouTube Embed:** Menggunakan direct URL embedding tanpa API key, lebih stabil dan hemat biaya.
|
|
* Sistem harus bisa mengelola kedua metode storage dengan baik.
|
|
* **Desain & User Interface:**
|
|
* **Skema Warna:**
|
|
* **Navy (#000080):** Warna utama untuk header, tombol penting, dan elemen interaktif
|
|
* **Abu-abu Redup (#A9A9A9):** Warna sekunder untuk background card, border, dan text次要
|
|
* **Putih (#FFFFFF):** Warna untuk text, background content area, dan space kosong
|
|
* **Background Halaman:**
|
|
* Menggunakan file `background.jpg` sebagai background utama di seluruh halaman
|
|
* Background harus memiliki overlay effect untuk memastikan text tetap readable
|
|
* Background akan fixed position agar tidak scroll dengan content
|
|
* **Konsistensi Visual:**
|
|
* Semua halaman (Landing, Login, Dashboard, Beranda, dll) menggunakan skema warna yang sama
|
|
* Card dan container harus memiliki semi-transparent background untuk melihat efek background
|
|
* Typography yang clean dan modern dengan kontras yang baik terhadap background
|
|
|
|
---
|
|
|
|
### **8. Asumsi & Kendala**
|
|
|
|
* **Asumsi:**
|
|
* Platform akan menggunakan video lokal dan direct URL YouTube untuk embed video (tanpa API dependencies).
|
|
* Platform akan menggunakan **Better Auth** framework untuk authentication dengan integrasi mudah ke Next.js 16+ dan Prisma ORM.
|
|
* Fitur FGD pada tahap awal akan berbasis forum teks, bukan video conference.
|
|
* File `background.jpg` telah tersedia dalam ukuran yang optimal untuk web dan responsive design. |