You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Go to SQL Editor → paste and run supabase/migrations/001_initial_schema.sql
In Storage → create bucket named kambio-photos (set to Public)
Copy your Project URL, Anon Key, and Service Role Key
2. Backend
cd backend
cp .env.example .env
# Fill in SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY, JWT_SECRET, ADMIN_EMAILS
npm install
npm run dev # Starts on http://localhost:4000
3. Flutter App
cd app
# Edit lib/core/constants.dart — fill in supabaseUrl and supabaseAnonKey
flutter pub get
flutter run # Android device/emulator
flutter run -d chrome # Web
flutter build apk --release # Android APK
flutter build web # Web build
4. Admin Panel
cd admin
cp .env.local.example .env.local
# Fill in NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY, ADMIN_PASSWORD
npm install
npm run dev # Starts on http://localhost:3001
Environment Variables
Backend (backend/.env)
Variable
Description
SUPABASE_URL
Your Supabase project URL
SUPABASE_ANON_KEY
Supabase anon/public key
SUPABASE_SERVICE_ROLE_KEY
Supabase service role key (keep secret!)
JWT_SECRET
Random string (min 32 chars) for JWT signing
PORT
API port (default: 4000)
SUPABASE_STORAGE_BUCKET
kambio-photos
ADMIN_EMAILS
Comma-separated admin emails, e.g. admin@kambio.ve
Flutter App (lib/core/constants.dart)
Constant
Description
supabaseUrl
Your Supabase project URL
supabaseAnonKey
Supabase anon key
apiBaseUrl
Backend URL, e.g. https://your-api.example.com/api