# Getting Started

Panduan setup dari nol untuk development environment.

## Prerequisites

- Python 3.9+
- MySQL / MariaDB (via XAMPP)
- Git

## 1. Clone & Virtual Environment

```bash
git clone <repo-url> investasi.kamu.co.id
cd investasi.kamu.co.id

python3 -m venv .venv
source .venv/bin/activate   # macOS/Linux
pip install -r requirements.txt
```

## 2. Konfigurasi Environment

Copy `.env.example` ke `.env` dan sesuaikan:

```bash
cp .env.example .env
```

### Variabel Wajib

| Variable | Default | Keterangan |
|----------|---------|------------|
| `FLASK_ENV` | `development` | Mode Flask |
| `FLASK_PORT` | `8888` | Port server |
| `SECRET_KEY` | - | Random secret key |
| `DB_HOST` | `localhost` | MySQL host |
| `DB_PORT` | `3306` | MySQL port |
| `DB_USER` | - | MySQL username |
| `DB_PASSWORD` | - | MySQL password |
| `DB_NAME` | - | Nama database |

### Variabel Opsional

| Variable | Keterangan |
|----------|------------|
| `COINGECKO_API_KEY` | API key CoinGecko (rate limit lebih tinggi) |
| `INDODAX_API_KEY` | Indodax API key |
| `SYNC_REMOTE_URL` | URL production untuk remote sync |
| `SYNC_API_KEY` | Key autentikasi remote sync |
| `SYNC_ENABLED` | `true` untuk enable remote sync |

## 3. Setup Database

Pastikan MySQL/MariaDB sudah running:

```bash
# macOS dengan XAMPP
/Applications/XAMPP/xamppfiles/bin/mysql.server start

# Buat database
mysql -u root -e "CREATE DATABASE IF NOT EXISTS cornbyt1_investasikamu CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
```

## 4. Seed Data Awal

Jalankan berurutan:

```bash
# 1. Seed settings & coins awal
python scripts/seed_data.py

# 2. Buat admin pertama
python scripts/seed_admin.py --username admin --email admin@investasi.kamu.co.id --password admin123

# 3. (Opsional) Seed saham IDX
python3 scripts/seed_stocks.py

# 4. (Opsional) Seed saham US
python3 scripts/seed_us_stocks.py

# 5. (Opsional) Import seluruh saham IDX dari Excel
python3 scripts/merge_idx_excel.py
```

## 5. Jalankan Server

```bash
python run.py
```

Server akan berjalan di `http://localhost:8888`.

### Login

| Role | URL | Credentials |
|------|-----|-------------|
| User | `/login` | admin / admin123 |
| Admin | `/admin/login` | admin / admin123 |

## 6. Sync Data Pertama

```bash
# Sync crypto dari CoinGecko/Indodax
python3 scripts/sync_data.py

# Sync saham IDX dari Yahoo Finance
python3 scripts/sync_data.py --mode stock

# Sync saham US dari Yahoo Finance
python3 scripts/sync_data.py --mode stock_us
```

## Troubleshooting

### MySQL Connection Refused
```
pymysql.err.OperationalError: Can't connect to MySQL server
```
Pastikan MySQL sudah running. Untuk XAMPP:
```bash
/Applications/XAMPP/xamppfiles/bin/mysql.server start
```

### Import Error pada yfinance
```
ModuleNotFoundError: No module named 'yfinance'
```
Pastikan virtual environment aktif dan dependencies terinstall:
```bash
source .venv/bin/activate
pip install -r requirements.txt
```
