# Quick Start: PostgreSQL Setup

## ✅ What's Been Configured

1. **Backend Database Connection**: Configured to use `postgresql+asyncpg://sibu:sibu@localhost:5432/sibu`
2. **Environment File**: Created `backend/.env.development` with database settings
3. **API Client**: Created Flutter `ApiClient` service for backend communication
4. **Run Scripts**: Created helper scripts for easy execution

## 🚀 Quick Start

### 1. Ensure PostgreSQL is Running

```bash
# Check if PostgreSQL is running
psql -h localhost -p 5432 -U sibu -d sibu -c "SELECT version();"
```

If it fails, start PostgreSQL:
```bash
# macOS with Homebrew
brew services start postgresql@14  # or your version
```

### 2. Create Database (if needed)

```bash
psql -h localhost -p 5432 -U postgres -c "CREATE DATABASE sibu;"
psql -h localhost -p 5432 -U postgres -c "CREATE USER sibu WITH PASSWORD 'sibu';"
psql -h localhost -p 5432 -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE sibu TO sibu;"
```

### 3. Apply Database Schema

You have migrations in `supabase/migrations/`. Apply them:

```bash
cd old
# Apply all migrations
for migration in supabase/migrations/*.sql; do
  psql -h localhost -p 5432 -U sibu -d sibu -f "$migration"
done
```

Or use Alembic (if backend models match):
```bash
cd backend
uv run alembic upgrade head
```

### 4. Start Backend API

```bash
cd backend
uv run fastapi dev app/main.py
```

Backend will be available at: `http://localhost:8000`

### 5. Run Flutter App

In a new terminal:

```bash
cd old
./scripts/run-flutter-backend.sh
```

Or manually:
```bash
flutter run -d chrome --dart-define=API_BASE_URL=http://localhost:8000
```

## 📋 Configuration Summary

| Component | Configuration |
|-----------|--------------|
| **Database** | `sibu:sibu@localhost:5432/sibu` |
| **Backend API** | `http://localhost:8000` |
| **Flutter API Client** | Configured via `--dart-define=API_BASE_URL` |

## 🔍 Verify Setup

### Test Database Connection
```bash
psql -h localhost -p 5432 -U sibu -d sibu -c "\dt"  # List tables
```

### Test Backend API
```bash
curl http://localhost:8000/health
curl http://localhost:8000/api/routes
```

### Test Flutter Connection
The app will automatically try to connect to the backend API on startup.

## 📚 Next Steps

- See `README-POSTGRESQL-SETUP.md` for detailed documentation
- Update Flutter services to use `ApiClient` instead of `SupabaseService` (currently still using Supabase)
- Add authentication if needed
- Configure CORS properly for production

## 🐛 Troubleshooting

**Backend can't connect:**
- Check PostgreSQL is running: `lsof -i :5432`
- Verify credentials: `psql -h localhost -p 5432 -U sibu -d sibu`
- Check `.env.development` file exists

**Flutter can't connect:**
- Verify backend is running: `curl http://localhost:8000/health`
- Check API_BASE_URL is set correctly
- Check browser console for CORS errors

