BossHunter
스마트 구직 에이전트(소스 공개, PolyForm 비상업적 라이선스; 상업적 이용은 별도 서면 허가 필요)
Randevu 운영을 위한 예약·고객 관리·알림 시스템, 미용실·클리닉·컨설팅 사무실에 최적화, 매일 아침 일정 자동 제공
Randevuyla çalışan işletmeler için randevu, müşteri takibi ve hatırlatma sistemi: salon, klinik, danışmanlık ofisi. Günün programı her sabah hazır.
비즈니스TypeScript · PLpgSQLGitHub @keremozbl온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Klinik ve işletmeler için randevu, hasta takibi ve otomatik hatırlatma sistemi. Çok kiracılı; işletme kayıt olur, sektörünü seçer, hazır bir şablonla kendi altyapısını kurar.
Plan ve mimari kararlar: docs/PLAN.md
Canlıya geçiş kontrol listesi: docs/CANLIYA-GECIS.md
Geliştirme kuralları: CLAUDE.md
npm install
cp .env.example .env
Docker kurulu olmadığı için yerel Supabase yerine bulut projesiyle
çalışıyoruz. Supabase CLI npx ile gelir, ayrıca kurulum gerekmez.
docs/PLAN.md Bölüm 12.2.URL, publishable ve secret anahtarları .env'e yaz.SUPABASE_DB_URL olarak .env'e yaz. Paroladaki özel karakterler
yüzde-kodlanmalı (# → %23).npm run db:push # migration'lar uygulanır
npm run db:seed # izin kataloğu ve rol şablonları
npm run db:advisors # güvenlik + performans denetimi
npm run rls:test # canlı kiracı izolasyonu ve çakışma testi
Tipleri yenilemek için (şema değiştikçe):
npm run db:types # personal access token gerekir, Docker gerekmez
db diffgölge veritabanı için Docker ister; kurulu değilse migration'larsupabase/migrations/altına elle yazılır.
npm run dev # http://localhost:3000
npm run typecheck
npm run lint
npm run build
Depo GitHub'a bağlı; main'e gelen her commit dağıtımı tetikler.
Environment Variables (Settings → Environment Variables):
| Değişken | Not |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase → Settings → API |
NEXT_PUBLIC_SUPABASE_ANON_KEY | aynı yer |
SUPABASE_SERVICE_ROLE_KEY | aynı yer; NEXT_PUBLIC_ ön eki ASLA eklenmez |
CRON_SECRET | kuyruk uç noktasının sırrı; yoksa uç nokta 503 döner |
NEXT_PUBLIC_SITE_URL | Vercel'de gerekmez — aşağıya bakın |
NEXT_PUBLIC_SITE_URL Vercel'de boş bırakılır: kod, Vercel'in kendi verdiği
NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL değerine düşer ve özel alan adı
bağlandığında kendiliğinden ona döner. Yerel .envi Vercel'e olduğu gibi
kopyalayıp localhost yazarsan o değer yok sayılır — aksi hâlde kurumun
paylaştığı bağlantı, karekodun içi ve hatırlatma mesajındaki link hep
localhost gösterirdi.
Supabase tarafında Authentication → URL Configuration → Site URL ve
Redirect URLs aynı adrese ayarlanır; yoksa giriş yönlendirmeleri
localhosta düşer.
Cron günde bir. vercel.json 0 6 * * * kullanıyor. Daha sık bir
ifade (*/5 * * * *) Hobby'de dağıtımı reddediyor, yavaşlatmıyor.
Gerçek beş dakikalık kuyruk boşaltma için Supabase'in pg_cron'u
kullanılır — hazır SQL docs/CANLIYA-GECIS.md B10 içinde.
Commit yazarı hesapla eşleşmeli. Vercel, sahibine eşleştiremediği bir
commit'i "başka bir katkıcı" sayar ve derlemeyi hiç başlatmaz; günlük bile
üretmez, sadece "Hobby teams do not support collaboration" der. git config user.email GitHub hesabına ekli ve doğrulanmış bir adres olmalı.
git config --global user.email # GitHub'a ekli adresle aynı mı?
src/app/ sayfalar ve server action'lar
src/lib/domain/ iş kuralları — slot hesaplama, çakışma, fiyat
src/lib/supabase/ client (tarayıcı) · server (SSR) · admin (servis rolü)
src/lib/templates/ sektör şablonları (JSON) — yeni sektör = yeni dosya
supabase/schemas/ şemanın TEK kaynağı; migration bunlardan üretilir
supabase/seed.sql izin kataloğu ve rol şablonları
docs/PLAN.md ürün, teknik ve hukuki plan
Faz 0 — kurulum. Tamamlananlar: