Skip to content

rizkyhamdana/SkinSenseAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌿 SkinSense AI

Analisis kandungan skincare secara instan, akurat, dan 100% offline.

SkinSense AI adalah aplikasi mobile Flutter yang membantu Anda memahami label bahan produk perawatan kulit (skincare) secara langsung dari ponsel Anda. Tanpa perlu mengirim data ke server, aplikasi ini menggunakan teknologi AI on-device untuk mengekstrak teks, mencocokkan bahan, dan memberikan edukasi keamanan bahan kosmetik secara instan.

⚠️ Catatan Penting: Aplikasi ini bersifat edukatif. Informasi yang diberikan bukan pengganti saran medis atau dermatologi profesional.


🏗️ Arsitektur Proyek (Migrasi Offline)

Aplikasi ini telah dimigrasi dari arsitektur Client-Server menjadi Arsitektur Offline-First untuk menjamin privasi data dan kecepatan akses tanpa internet.

SkinSense AI
├── data/           → Dataset mentah & hasil preprocessing (CSV)
├── ml/             → Script pelatihan model & eksportir aset offline
├── mobile/         → Aplikasi Flutter (Pusat logika sekarang berada di sini)
│   ├── assets/     → Model weights, knowledge base, dan alias (JSON)
│   └── lib/        → Offline Engine (Logika analisis dipindah ke sini)
└── backend/        → [Deprecated] Hanya untuk referensi API lama

📂 Alur Kerja On-Device AI

Gambar → OCR (ML Kit) → Teks Bahan → Offline Analysis Engine (Flutter)
    → Search Alias Map (Local JSON) → Match Ingredient (Local JSON)
    → TFLite/Manual Inference (Product Type) → Indonesian Explainer
    → Response → UI

📊 Dataset & Aset Offline

Sistem menggunakan tiga aset utama yang dikompresi untuk penggunaan seluler:

  1. knowledge_base.json: Basis data ~9.500 bahan dengan deskripsi variatif yang dihasilkan secara deterministik untuk menghindari duplikasi robotik.
  2. ingredient_aliases.json: Map ~12.000 alias bahan (misal: AquaWater) untuk meningkatkan akurasi pencocokan teks OCR.
  3. model_weights.json: Bobot model LinearSVC yang diekstrak untuk menjalankan inferensi klasifikasi tipe produk langsung di dalam Dart (tanpa server).

⚙️ Skrip Pendukung (Folder ml/)

  1. prepare_ingredients.py: Melakukan stochastic template injection untuk menghasilkan ribuan deskripsi bahan yang unik dan akurat secara ilmiah dalam Bahasa Indonesia.
  2. export_assets.py: Mengonversi model Scikit-Learn dan basis data CSV menjadi format JSON teroptimasi yang siap dibaca oleh aplikasi Flutter.

📱 Fitur Utama Aplikasi

  • Offline Scanner: Ekstraksi teks bahan menggunakan Google ML Kit.
  • Instant Analysis: Pencocokan bahan instan terhadap 9.500+ database INCI.
  • Safety Indicators: Kategori keamanan (Risiko Rendah, Perlu Perhatian, Perlu Kehati-hatian).
  • History Management: Simpan hasil analisis secara lokal ke memori ponsel.
  • Privacy Guaranteed: Tidak ada data gambar atau teks yang keluar dari perangkat Anda.

🚀 Panduan Pengembang

Prasyarat

  • Flutter SDK 3.x
  • Python 3.9+ (hanya untuk memperbarui database)

Menjalankan Aplikasi

  1. Masuk ke folder mobile/.
  2. Jalankan flutter pub get.
  3. Jalankan flutter run.

Memperbarui Basis Data (Opsional)

Jika Anda mengubah dataset di data/raw/:

cd ml
source .venv/bin/activate
python prepare_ingredients.py
python export_assets.py
# Aset akan otomatis disalin ke folder assets mobile

📜 Lisensi & Disclaimer

Proyek ini dibuat untuk tujuan portofolio pengembang. Data keamanan bahan dirangkum dari berbagai sumber publik dan tidak boleh dianggap sebagai diagnosa medis profesional.


SkinSense AI — Analisis skincare cerdas di saku Anda.

About

Instant offline skincare analyzer powered by on-device AI. 100% private, zero-server ingredient decoding.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages