# ConfiVoice Mobile App Folder `cv_app/` dipakai untuk aplikasi Flutter mobile. Kode Flutter berada di: ```text cv_app/mobile_app/ ``` File lama Streamlit/API masih ada di folder ini untuk kompatibilitas, tetapi struktur baru yang disarankan adalah: ```text ml/ # API prediksi dan model machine learning cv_web/ # Website admin cv_app/ # Flutter mobile ``` ## Menjalankan Flutter ```bash cd cv_app/mobile_app flutter pub get flutter run ``` ## Endpoint API Jalankan API dari folder `ml/`: ```bash cd ml uvicorn api_app:app --host 0.0.0.0 --port 8000 ``` Endpoint prediksi: ```text POST /predict ``` Field multipart upload: ```text file student_name ``` Setiap prediksi dari Flutter akan disimpan ke database default: ```text 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: ```bash cd cv_app source .venv/bin/activate pip install PyMySQL ``` 5. Jalankan API dengan konfigurasi MySQL: ```bash 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`: ```bash export CONFIVOICE_MYSQL_PASSWORD=root export CONFIVOICE_MYSQL_PORT=8889 ``` Setelah prediksi dari Flutter, data akan masuk ke tabel: ```text confivoice.prediction_results ``` Endpoint untuk melihat data: ```text GET /predictions GET /admin ``` Website admin dapat dibuka di: ```text http://localhost:8001/admin ``` Jika memakai HP fisik, ganti `localhost` dengan IP komputer yang menjalankan API, misalnya: ```text 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`.