Backend API untuk aplikasi Bunda Care dibangun menggunakan Flask.
- Python 3.8+
- MySQL atau PostgreSQL (sesuaikan di
.env) - Virtual Environment (direkomendasikan)
-
Clone repository ini (jika belum):
git clone <repository-url> cd bunda_care_server
-
Buat dan aktifkan Virtual Environment:
# Windows python -m venv venv venv\Scripts\activate # Linux/macOS python3 -m venv venv source venv/bin/activate
-
Instal dependensi:
pip install -r requirements.txt
Jika Anda ingin menjalankan aplikasi di dalam container:
-
Jalankan aplikasi:
docker compose up --build
-
Mode Development (dengan fitur Watch/Auto-sync): Aplikasi akan otomatis mendeteksi perubahan file tanpa restart container:
docker compose watch
-
Database Migration via Docker:
docker exec -it bunda_care_server flask db upgrade -
Membuat Admin via Docker:
docker exec -it bunda_care_server python create_admin.py
- Salin file
.env.examplemenjadi.env:cp .env.example .env
- Sesuaikan variabel di dalam
.env(Database URI, Google Client ID, Secret Key, dll).
Meskipun menggunakan database cloud (seperti Neon atau RDS), Anda tetap perlu membuat struktur tabel pada database yang masih kosong:
# Menjalankan migrasi untuk membuat/memperbarui tabel
flask db upgradeCatatan: Pastikan SQLALCHEMY_DATABASE_URI di file .env sudah mengarah ke URL database cloud Anda.
Untuk membuat user admin pertama kali, jalankan script berikut setelah konfigurasi .env lengkap:
python create_admin.pyJalankan server dalam mode development:
python app.pyServer akan berjalan di http://localhost:5000.
- Autentikasi: Login tradisional dan Google OAuth.
- Meal Tracking: Pencatatan riwayat makan (Meal Log).
- Food Scanning: Deteksi makanan menggunakan AI (Ultralytics/YOLO).
- Rekomendasi: Sistem rekomendasi makanan sehat.
- Admin Panel: Manajemen menu dan user untuk administrator.
app/: Source code utama aplikasi.app/models/: Definisi skema database (SQLAlchemy).app/routes/: Definisi endpoint API.migrations/: File migrasi database.requirements.txt: Daftar package Python yang dibutuhkan.config.py: Konfigurasi aplikasi.