2.6 KiB
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.
- Nyalakan MySQL dari XAMPP/MAMP.
- Buka phpMyAdmin.
- 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/