MIF_E31231708/cv_app
1rHub e0839a7237 Menambahkan project TA 2026-08-06 15:22:07 +07:00
..
mobile_app Menambahkan project TA 2026-08-06 15:22:07 +07:00
README.md Menambahkan project TA 2026-08-06 15:22:07 +07:00
api_app.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
app.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
audio_utils_app.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
database.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
predict_app.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
requirements.txt Menambahkan project TA 2026-08-06 15:22:07 +07:00

README.md

ConfiVoice Mobile App

Folder cv_app/ dipakai untuk aplikasi Flutter mobile.

Kode Flutter berada di:

cv_app/mobile_app/

File lama Streamlit/API masih ada di folder ini untuk kompatibilitas, tetapi struktur baru yang disarankan adalah:

ml/       # API prediksi dan model machine learning
cv_web/   # Website admin
cv_app/   # Flutter mobile

Menjalankan Flutter

cd cv_app/mobile_app
flutter pub get
flutter run

Endpoint API

Jalankan API dari folder ml/:

cd ml
uvicorn api_app:app --host 0.0.0.0 --port 8000

Endpoint prediksi:

POST /predict

Field multipart upload:

file
student_name

Setiap prediksi dari Flutter akan disimpan ke database default:

cv_web/data/confivoice.db

SQLite tetap database SQL, tetapi tidak perlu server database terpisah. Cocok untuk menjalankan aplikasi lokal/TA.

Jika ingin melihat database lewat phpMyAdmin, gunakan mode MySQL/MariaDB:

  1. Nyalakan MySQL dari XAMPP/MAMP/Laragon.
  2. Buka phpMyAdmin.
  3. Buat database bernama confivoice, atau biarkan API membuat database otomatis jika user MySQL punya izin CREATE DATABASE.
  4. Install dependency:
cd cv_app
source .venv/bin/activate
pip install PyMySQL
  1. Jalankan API dengan konfigurasi MySQL:
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
python -m uvicorn api_app:app --host 0.0.0.0 --port 8000

Untuk MAMP, password root biasanya root dan port MySQL bisa 8889:

export CONFIVOICE_MYSQL_PASSWORD=root
export CONFIVOICE_MYSQL_PORT=8889

Setelah prediksi dari Flutter, data akan masuk ke tabel:

confivoice.prediction_results

Endpoint untuk melihat data:

GET /predictions
GET /admin

Website admin dapat dibuka di:

http://localhost:8001/admin

Jika memakai HP fisik, ganti localhost dengan IP komputer yang menjalankan API, misalnya:

http://192.168.1.6:8000/admin

Catatan

  • Folder cv_app/ tidak berisi dataset utama.
  • Folder cv_app/ tidak berisi model utama.
  • File upload diproses sebagai file sementara menggunakan tempfile.
  • Audio non-WAV dikonversi otomatis ke WAV mono 22050 Hz menggunakan pydub dan ffmpeg.