Go to file
1rHub e0839a7237 Menambahkan project TA 2026-08-06 15:22:07 +07:00
.history Menambahkan project TA 2026-08-06 15:22:07 +07:00
cv_app Menambahkan project TA 2026-08-06 15:22:07 +07:00
cv_web Menambahkan project TA 2026-08-06 15:22:07 +07:00
docs Menambahkan project TA 2026-08-06 15:22:07 +07:00
ml Menambahkan project TA 2026-08-06 15:22:07 +07:00
tools Menambahkan project TA 2026-08-06 15:22:07 +07:00
.gitignore Menambahkan project TA 2026-08-06 15:22:07 +07:00
README.md Menambahkan project TA 2026-08-06 15:22:07 +07:00

README.md

ConfiVoice

Struktur utama project:

confivoice3/
├── cv_app/   # Aplikasi Flutter mobile
├── ml/       # Machine learning, model, dataset, dan API prediksi
└── cv_web/   # Website admin untuk melihat data hasil prediksi siswa/i

1. Jalankan API Prediksi

API berada di folder ml/.

cd ml
../cv_app/.venv/bin/python -m uvicorn api_app:app --host 0.0.0.0 --port 8000

Endpoint penting:

POST http://localhost:8000/predict
POST http://localhost:8000/predictions
GET  http://localhost:8000/predictions
GET  http://localhost:8000/model

POST /predict hanya menjalankan analisis dan menampilkan hasil di Flutter. Data baru masuk database setelah pengguna menekan tombol Simpan Hasil, yang mengirim data ke POST /predictions.

2. Jalankan Flutter Mobile

Flutter berada di folder cv_app/mobile_app/.

cd cv_app/mobile_app
flutter pub get
flutter run

Endpoint default emulator Android:

http://10.0.2.2:8000/predict

Jika memakai HP fisik, ganti endpoint di menu Model menjadi IP komputer, misalnya:

http://192.168.1.6:8000/predict

3. Jalankan Website Admin

Admin berada di folder cv_web/.

cd cv_web
../cv_app/.venv/bin/python -m uvicorn app:app --host 0.0.0.0 --port 8001

Buka:

http://localhost:8001/admin

Database phpMyAdmin / MySQL

Struktur baru default memakai MySQL/MariaDB agar data bisa dicek lewat phpMyAdmin.

  1. Nyalakan MySQL dari XAMPP/MAMP.
  2. Buka phpMyAdmin.
  3. Jalankan API. Database dan tabel akan dibuat otomatis jika user MySQL punya izin CREATE DATABASE.

Konfigurasi default:

host: 127.0.0.1
port: 3306
user: root
password: kosong
database: confivoice
table: prediction_results

Jika setting MySQL kamu berbeda, pakai environment:

export CONFIVOICE_DB_DRIVER=mysql
export CONFIVOICE_MYSQL_HOST=127.0.0.1
export CONFIVOICE_MYSQL_PORT=3306
export CONFIVOICE_MYSQL_USER=root
export CONFIVOICE_MYSQL_PASSWORD=
export CONFIVOICE_MYSQL_DATABASE=confivoice

Untuk MAMP, biasanya port 8889 dan password root.

Schema SQL manual tersedia di:

cv_web/schema_mysql.sql

Jika ada data SQLite lama yang mau dipindah ke MySQL:

cd ml
../cv_app/.venv/bin/python migrate_sqlite_to_mysql.py

SQLite lama, jika masih ada, berada di:

cv_web/data/confivoice.db

File Lama

Beberapa file lama di cv_app/ masih dipertahankan agar command lama tidak langsung rusak:

cv_app/api_app.py
cv_app/app.py
cv_app/predict_app.py
cv_app/audio_utils_app.py
cv_app/database.py

Untuk struktur baru, gunakan:

ml/api_app.py
cv_web/app.py
cv_app/mobile_app/