CoolFace
Apppublic

frendyardiansyah31/bahasaku-backend

sourceHugging Faceupdated 4mo agoView on Hugging Face
0likes
App README

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

bash
git clone <url-repo>
cd backend

2. Buat file `.env`

Jika bash (Linux / Mac)

bash
cp .env.example .env

atau bisa copy paste lalu rename untuk pengguna Windows

Isi file .env:

SECRET_KEY=isi-dengan-string-acak-panjang
DEBUG=True
USE_SQLITE=True

Cara 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

bash
pipenv install

4. Aktifkan virtual environment

bash
pipenv shell

5. Jalankan migrasi database

bash
python manage.py migrate

6. Buat akun superuser untuk Django Admin

bash
python manage.py createsuperuser

7. Jalankan server

bash
python manage.py runserver

Server berjalan di http://localhost:8000

Verifikasi

URLYang diharapkan
http://localhost:8000/health/{"status": "ok"}
http://localhost:8000/api/schema/swagger-ui/Halaman dokumentasi Swagger UI
http://localhost:8000/admin/Halaman Django Admin

Tech Stack

KomponenTeknologi
LanguagePython 3.10
FrameworkDjango 4.2 LTS + Django REST Framework
AuthJWT via djangorestframework-simplejwt
Database (lokal)SQLite
Database (production)PostgreSQL via Supabase
API Docsdrf-spectacular (Swagger UI)
Package managerpipenv

Environment Variables

VariableKeterangan
SECRET_KEYWajib. Key enkripsi Django
DEBUGTrue untuk development, False untuk production
USE_SQLITETrue = SQLite lokal, False = PostgreSQL
DB_NAMENama database PostgreSQL
DB_USERUsername PostgreSQL
DB_PASSWORDPassword PostgreSQL
DB_HOSTHost PostgreSQL (dari Supabase)
DB_PORTPort PostgreSQL (default: 5432)
File .env tidak pernah di-commit ke Git. Lihat .env.example untuk template lengkap.