145 lines
2.6 KiB
Markdown
145 lines
2.6 KiB
Markdown
# ConfiVoice
|
|
|
|
Struktur utama project:
|
|
|
|
```text
|
|
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/`.
|
|
|
|
```bash
|
|
cd ml
|
|
../cv_app/.venv/bin/python -m uvicorn api_app:app --host 0.0.0.0 --port 8000
|
|
```
|
|
|
|
Endpoint penting:
|
|
|
|
```text
|
|
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/`.
|
|
|
|
```bash
|
|
cd cv_app/mobile_app
|
|
flutter pub get
|
|
flutter run
|
|
```
|
|
|
|
Endpoint default emulator Android:
|
|
|
|
```text
|
|
http://10.0.2.2:8000/predict
|
|
```
|
|
|
|
Jika memakai HP fisik, ganti endpoint di menu `Model` menjadi IP komputer,
|
|
misalnya:
|
|
|
|
```text
|
|
http://192.168.1.6:8000/predict
|
|
```
|
|
|
|
## 3. Jalankan Website Admin
|
|
|
|
Admin berada di folder `cv_web/`.
|
|
|
|
```bash
|
|
cd cv_web
|
|
../cv_app/.venv/bin/python -m uvicorn app:app --host 0.0.0.0 --port 8001
|
|
```
|
|
|
|
Buka:
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
host: 127.0.0.1
|
|
port: 3306
|
|
user: root
|
|
password: kosong
|
|
database: confivoice
|
|
table: prediction_results
|
|
```
|
|
|
|
Jika setting MySQL kamu berbeda, pakai environment:
|
|
|
|
```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
|
|
```
|
|
|
|
Untuk MAMP, biasanya port `8889` dan password `root`.
|
|
|
|
Schema SQL manual tersedia di:
|
|
|
|
```text
|
|
cv_web/schema_mysql.sql
|
|
```
|
|
|
|
Jika ada data SQLite lama yang mau dipindah ke MySQL:
|
|
|
|
```bash
|
|
cd ml
|
|
../cv_app/.venv/bin/python migrate_sqlite_to_mysql.py
|
|
```
|
|
|
|
SQLite lama, jika masih ada, berada di:
|
|
|
|
```text
|
|
cv_web/data/confivoice.db
|
|
```
|
|
|
|
## File Lama
|
|
|
|
Beberapa file lama di `cv_app/` masih dipertahankan agar command lama tidak
|
|
langsung rusak:
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
ml/api_app.py
|
|
cv_web/app.py
|
|
cv_app/mobile_app/
|
|
```
|