|
|
||
|---|---|---|
| .. | ||
| mobile_app | ||
| README.md | ||
| api_app.py | ||
| app.py | ||
| audio_utils_app.py | ||
| database.py | ||
| predict_app.py | ||
| requirements.txt | ||
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:
- Nyalakan MySQL dari XAMPP/MAMP/Laragon.
- Buka phpMyAdmin.
- Buat database bernama
confivoice, atau biarkan API membuat database otomatis jika user MySQL punya izinCREATE DATABASE. - Install dependency:
cd cv_app
source .venv/bin/activate
pip install PyMySQL
- 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
pydubdanffmpeg.