frendyardiansyah31/bahasaku-backend
BahasaKu
Backend API untuk platform latihan Bahasa Indonesia adaptif bagi mahasiswa asing di UIII (Universitas Islam Internasional Indonesia). Dibangun dengan Django REST Framework.
Problem yang Diselesaikan
Mahasiswa asing di UIII kesulitan mempelajari Bahasa Indonesia secara mandiri karena tidak ada platform latihan yang:
- Menyesuaikan materi dengan kemampuan individu masing-masing pengguna
- Melacak perkembangan skill secara spesifik per topik
- Memberikan rekomendasi latihan berdasarkan kelemahan dan kebiasaan belajar
BahasaKu hadir sebagai solusi dengan sistem kuis adaptif yang secara otomatis menyesuaikan rekomendasi topik berdasarkan performa historis pengguna.
Fitur Utama
Autentikasi
- Registrasi dan login dengan JWT (access token + refresh token)
- Logout dengan revoke refresh token
- Manajemen profil dan onboarding pengguna
Kuis Adaptif
- Daftar topik pembelajaran yang dapat difilter per kategori atau dicari dengan kata kunci
- Sesi kuis per topik dengan soal pilihan ganda
- Submit jawaban per soal dengan feedback langsung (benar/salah + penjelasan)
- Selesaikan sesi kuis dan dapatkan skor, XP, serta streak harian
Adaptive Learning
- Pelacakan skill pengguna per topik secara otomatis setelah setiap sesi kuis
- Kalkulasi tingkat kelemahan berdasarkan akurasi jawaban, frekuensi error, dan jarak hari terakhir latihan
- Rekomendasi topik harian berdasarkan algoritma prioritas:
(weakness × 0.5) + (days_idle × 0.3) + (error_freq × 0.2)
Cara Install dan Menjalankan
Prasyarat
- Python 3.10
- pipenv — install dengan:
pip install pipenv
Langkah-langkah
1. Clone repository
git clone <url-repo>
cd backend2. Buat file `.env`
Jika bash (Linux / Mac)
cp .env.example .envatau bisa copy paste lalu rename untuk pengguna Windows
Isi file .env:
SECRET_KEY=isi-dengan-string-acak-panjang
DEBUG=True
USE_SQLITE=TrueCara membuat secret key menggunakan python :
Generate SECRETKEY: ```bash python -c "from django.core.management.utils import getrandomsecretkey; print(getrandomsecret_key())" ```
Lalu copy paste hasil generate secret key ke file .env sebelumnya
3. Install dependencies
pipenv install4. Aktifkan virtual environment
pipenv shell5. Jalankan migrasi database
python manage.py migrate6. Buat akun superuser untuk Django Admin
python manage.py createsuperuser7. Jalankan server
python manage.py runserverServer berjalan di http://localhost:8000
Verifikasi
Tech Stack
Environment Variables
File.envtidak pernah di-commit ke Git. Lihat.env.exampleuntuk template lengkap.
