Bu panel; WhatsApp grup karmaşası yerine duyuru, görev, arıza, vardiya ve personel takibini tek yerde toplamak için hazırlanmış, responsive bir saha operasyon yönetim panelidir. Petrol istasyonu, market, saha ekibi ve vardiyalı çalışan takımlar için yapılandırılmış bir iş akışı sunar. Personel giriş ekranından kendisi kayıt olur; yetkili (admin veya takım lideri) onayladıktan sonra girişi aktifleşir.
- Tüm modüllerde tam CRUD: kayıt oluşturma, düzenleme ve silme
- Arama ve filtreleme desteği (durum, kategori, öncelik vb.)
- Koyu tema (dark mode) desteği
- Anlık bildirimler (toast) ile kullanıcı geri bildirimi
- PWA kurulumu: uygulamayı ana ekrana ekleyip mobilde açma
- Görev öncelikleri (Düşük / Normal / Yüksek / Acil) ve geciken görev takibi
- Arıza önem derecesi (Düşük / Orta / Yüksek / Kritik) ve fotoğraf büyütme (lightbox)
- Haftalık vardiya planı görsel paylaşımı (2026-07-08 itibarıyla güncellendi: liste/takvim/arama/filtre ve vardiya oluşturma formu kaldırıldı, sadece Excel çıktısının fotoğraf/görsel olarak yüklendiği galeri kaldı)
- Dashboard'da "Çevrimiçi Personeller" kartı (2026-07-08'de eklendi): giriş/çıkış ve periyodik heartbeat ile personelin anlık çevrimiçi durumu izlenir
- CSV olarak dışa aktarma
- Supabase RLS ile rol bazlı erişim kontrolü
- Türkçe tipografi ve doğru diakritik kullanımı
- Next.js 16 (App Router)
- React 19
- Supabase Auth, Database, Storage
- Tailwind CSS
- TypeScript
- Lucide React ikonları
| Yol | Açıklama |
|---|---|
/login |
Supabase Auth ile oturum açma |
/dashboard |
Genel özet ve modüllere hızlı erişim |
/announcements |
Duyurular, sabitleme ve okundu takibi |
/tasks |
Görevler, öncelik ve durum yönetimi, geciken görevler |
/faults |
Arıza kayıtları, önem derecesi ve fotoğraf yükleme |
/shifts |
Haftalık vardiya planı görsel paylaşımı (güncellendi 2026-07-08: eski liste/takvim görünümü kaldırıldı) |
/personnel |
Personel listesi ve bilgileri |
/admin |
Yetkili paneli: rol, departman ve personel yönetimi |
/profile |
Kullanıcının kendi profil bilgileri |
| Yetki | Admin | Takım Lideri | Personel |
|---|---|---|---|
| Duyuru okuma | Evet | Evet | Evet |
| Duyuru oluşturma / düzenleme / silme | Evet | Evet | Hayır |
| Görev oluşturma / düzenleme / silme | Evet | Evet | Hayır |
| Kendi görev durumunu güncelleme | Evet | Evet | Evet |
| Arıza bildirimi açma | Evet | Evet | Evet |
| Arıza yönetimi (düzenleme / silme) | Evet | Evet | Hayır |
| Vardiya yönetimi | Evet | Hayır | Hayır |
| Personel ve departman yönetimi | Evet | Hayır | Hayır |
| Rol / departman düzenleme | Evet | Hayır | Hayır |
Yetkiler Supabase Row Level Security (RLS) politikaları ile veritabanı seviyesinde uygulanır; ayrıntılar için
supabase/schema.sqldosyasına bakın.
- Bağımlılıkları yükleyin.
npm install.env.exampledosyasını.env.localolarak kopyalayın ve Supabase bilgilerini girin.
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...-
Supabase SQL editöründe
supabase/schema.sqldosyasını çalıştırın. Bu betik tablolar, enum tipleri, indeksler, tetikleyiciler ve RLS politikalarını oluşturur.fault-photosadındaki public Storage bucket'ı ve ilgili erişim politikaları otomatik olarak oluşturulur. -
Geliştirme sunucusunu başlatın.
npm run devprofiles.id, Supabase Auth kullanıcı ID değeri (auth.users.id) ile aynıdır.- Yeni bir kullanıcı Auth tarafında oluştuğunda
handle_new_usertetikleyicisi devreye girer ve varsayılan olarakstaff(Personel) rolüyle otomatik bir profil kaydı açar. - Kullanıcının rolü ve departmanı Yetkili Paneli (
/admin) üzerinden düzenlenir. Admin olmayan kullanıcılarguard_profile_privilegestetikleyicisi sayesinde kendi rollerini, departmanlarını veya aktifliklerini değiştiremez. - Görev "Tamamlandı" ve arıza "Çözüldü" durumlarına geçtiğinde tamamlanma / çözülme zaman damgaları tetikleyicilerle otomatik yönetilir.
- (2026-07-08 eklendi)
profiles.is_onlineveprofiles.last_seen_at: giriş yapınca ve panel açıkken periyodik "heartbeat" ile (pingPresenceserver action) güncellenir; çıkıştais_onlinefalse yapılır. Dashboard'daki "Çevrimiçi Personeller" kartı bu alanları kullanır. Ayrıntı için CHANGELOG.md ve TODO.md dosyalarına bakın.
| Komut | Açıklama |
|---|---|
npm run dev |
Geliştirme sunucusunu başlatır |
npm run build |
Üretim derlemesi alır |
npm run start |
Üretim derlemesini çalıştırır |
npm run lint |
ESLint kontrollerini çalıştırır |
npm run typecheck |
TypeScript tür denetimi yapar (tsc --noEmit) |
npm run format |
Prettier ile kodu biçimlendirir |
npm run format:check |
Prettier biçim kontrolü yapar |
Proje Vercel üzerinde dağıtıma uygundur.
- Vercel proje ayarlarında aşağıdaki ortam değişkenlerini tanımlayın:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY
- Sayfalar dinamik olduğundan build sırasında ek gizli anahtara gerek yoktur.
Geliştirme akışı, kod düzeni ve stil kuralları için CONTRIBUTING.md dosyasına bakın. Ekip içi iş bölümü ve kontrol listesi için COLLABORATION.md dosyasını inceleyebilirsiniz. Değişiklik geçmişi için CHANGELOG.md, bilinen hatalar ve bekleyen işler için TODO.md dosyasına bakın.