Proje Özeti
Basit Anlatım
GİP Akademi, yeni iş kuracak veya işini yürüten kişilere "muhasebe işlerini nasıl doğru yaparsın?" diye öğreten bir online eğitim platformu. İnsanlar önce kendini tanıtıyor (şahıs mı, şirket mi), sonra zorunlu eğitimleri izliyor, sınavları geçiyor ve sertifika alıyor. Amaç: Ceza yemeden önce öğrenmek.
Teknik Özet
LMS (Learning Management System) yapısında, multi-step onboarding flow, zorunlu eğitim modülleri (video + metin), quiz/assessment engine, sertifika üretim sistemi ve kullanıcı ilerleme takibi gerektiren bir platform. MERSİS/KOSGEB benzeri ön başvuru formu ile başlıyor.
Mevcut Sistemde Var mı?
| GİP Akademi Özelliği | Durum | Açıklama |
|---|---|---|
| Ön Başvuru / Kayıt Formu | Kısmi | Temel kayıt var ama çok adımlı başvuru formu yok |
| Eğitim / Kurs Modülü | Yok | Hiçbir eğitim/kurs altyapısı mevcut değil |
| Video İçerik Sistemi | Yok | Ses streaming altyapısı var, video altyapısı yok |
| Sınav / Quiz Sistemi | Yok | Hiçbir değerlendirme sistemi mevcut değil |
| Sertifika Üretimi | Kısmi | Mevcut sistemde QR kodlu üyelik sertifikası var, eğitim sertifikası değil |
| İlerleme Takibi | Yok | Kullanıcı ilerleme/tamamlama takibi yok |
| Çok Adımlı Form / Wizard | Yok | Step-by-step form altyapısı mevcut değil |
| Blog / İçerik Yönetimi | Var | AI destekli, çok dilli, SEO uyumlu blog modülü |
| Kullanıcı Yönetimi | Var | Rol/izin sistemi, e-posta doğrulama mevcut |
| E-posta Bildirimleri | Var | Mail modülü ve bildirim altyapısı mevcut |
Kullanıcı Yolculuğu Hiyerarşisi
Kullanıcı platforma girdiğinde hangi adımları, hangi sırayla görecek?
Anasayfa (Landing Page)
Herkes giriş yapmadan görebilirPlatform tanıtımı, "Ücretsiz Başla" butonu, kısa açıklama
5 ana modül kartları: Fatura, Yasal Süreler, Banka, İletişim, Riskler
Sık sorulan sorular, istatistikler, kayıt çağrısı
Kayıt & Giriş
Hesap oluşturma veya mevcut hesapla girişAd-soyad, e-posta, telefon, şifre, KVKK onayı
Doğrulama linki gönderilir, tıklanmadan devam edilemez
Onboarding Wizard (Ön Başvuru)
Zorunlu — tamamlanmadan platform açılmazŞahıs / Limited / Anonim / Serbest Meslek / Henüz kurulmadı
Perakende, e-ticaret, hizmet, üretim, sağlık, gıda vs.
Kurulacak / Yeni kurulmuş / Faaliyette / E-ticaret satıcısı
Bilgilerin özeti, düzenleme imkânı, "Eğitime Başla" butonu
Kullanıcı Dashboard
Ana kontrol paneli — giriş sonrası ilk sayfaGenel ilerleme %, tamamlanan ders sayısı, kalan ders
Devam eden kurslar listesi, "Devam Et" butonları
Kazanılan sertifikalar, PDF indir, QR doğrulama
Eğitim Listesi & Kurs Detay
Tüm eğitimleri görme ve bir kursa girmeKart veya liste görünüm, zorunlu/opsiyonel etiketi, ilerleme barı, süre bilgisi
Kurs açıklaması, bölüm listesi (accordion), ders sayısı, "Kayıt Ol" butonu
Ders İzleme Sayfası
Video/metin içeriği tüketmeSidebar'da tüm dersler, tamamlananlar tikli, aktif ders vurgulu
Video player veya metin içerik, ilerleme barı, "Dersi Tamamla" butonu
Sonraki ders veya "Sınava Geç" butonu
Sınav Sayfası
Eğitim sonu değerlendirmeSoru sayısı, süre bilgisi, geçme notu, "Sınava Başla" butonu
Tek soru görünümü, şıklar, ileri-geri, kalan süre, soru numarası
Puan, geçti/kaldı, doğru/yanlış özeti, tekrar deneme butonu
Sertifika Sayfası
Tüm eğitimler + sınavlar tamamlandığındaAnimasyonlu başarı mesajı, konfeti efekti, sertifika önizleme
PDF indir, sosyal medyada paylaş, QR doğrulama kodu
Herkese açık /verify/{code} sayfası — üçüncü kişiler kontrol edebilir
Sayfa Draft'ları (Wireframe)
Her sayfanın ana bölümleri ve yerleşim planı.
Draft 1: Anasayfa (Landing Page)
Draft 2: Onboarding Wizard
Faaliyet alanınız nedir?
İşletmenizin veya kurmayı planladığınız işletmenin sektörünü seçin.
Draft 3: Kullanıcı Dashboard
Draft 4: Ders İzleme Sayfası
3. Gider Belgesi Nedir, Ne Değildir?
Bu derste hangi harcamaların gider olarak kabul edildiğini, hangilerinin "kanunen kabul edilmeyen gider" sayıldığını öğreneceksiniz.
Draft 5: Sınav Sayfası
Aşağıdakilerden hangisi "kanunen kabul edilmeyen gider" kapsamındadır?
Draft 6: Sertifika Sayfası
başarıyla tamamladığını belgeler.
Eklenmesi Gereken Modüller ve Detaylı Analiz
1. Eğitim Modülü (Education Module)
Yüksek ÖncelikBasit Anlatım (Herkes İçin)
Bu modül projenin kalbi. Tıpkı Udemy veya bir online kurs sitesi gibi düşünün: Eğitimler bölümlere ayrılmış, her bölümde videolar ve yazılı içerikler var. Kullanıcı sırasıyla izliyor, birini bitirmeden diğerine geçemiyor.
Nasıl olmalı: Her eğitim bir "kurs" olarak tanımlanmalı. Kurslar alt bölümlere (ders) ayrılmalı. Her dersin içinde video, yazı veya sunum olabilmeli. Kullanıcı dersi tamamladığında sistem otomatik olarak "tamamlandı" işaretlemeli ve bir sonraki derse geçiş açılmalı.
Neden önemli: GİP Akademi'nin tüm eğitim içeriği bu modül üzerinden sunulacak. Bu olmadan projenin kendisi olmaz.
Zorunluluk mekanizması: Bazı eğitimler "zorunlu" olarak işaretlenebilmeli. Kullanıcı zorunlu eğitimleri tamamlamadan platforma tam erişim sağlayamamalı.
Teknik Detaylar (Geliştiriciler İçin)
- Tablolar: courses, course_sections, course_lessons, course_enrollments, lesson_progress
- Modeller: Course, CourseSection, CourseLesson, Enrollment, LessonProgress
- İlişkiler: Course hasMany Sections, Section hasMany Lessons, User belongsToMany Courses (pivot: enrollments)
- Lesson Types: video, text, pdf, presentation (polymorphic content)
- Erişim Kontrolü: Middleware ile enrollment ve prerequisite kontrolü. is_mandatory flag ile zorunlu eğitim desteği
- İlerleme: lesson_progress tablosunda completed_at, progress_percentage, last_position (video için saniye bazlı)
- Çeviri: Mevcut HasTranslatable trait kullanılabilir
- Konum: Modules/Education/
- Admin: Livewire componentler ile kurs, bölüm, ders CRUD + sıralama (drag-drop)
2. Sınav / Değerlendirme Modülü (Quiz Module)
Yüksek ÖncelikBasit Anlatım
Her eğitimin sonunda kullanıcıya sorular sorulacak. "Faturanızı kaç gün içinde teslim etmelisiniz?" gibi çoktan seçmeli veya doğru/yanlış sorular. Belirli bir puanı geçemezse eğitim tamamlanmış sayılmayacak.
Nasıl olmalı: Sınav soruları admin panelinden kolayca eklenebilmeli. Geçme notu ayarlanabilir olmalı (örneğin %70). Sınavı geçemeyenler tekrar deneyebilmeli.
Neden önemli: Sertifika vermek için kullanıcının gerçekten öğrenip öğrenmediğini ölçmek şart.
Teknik Detaylar
- Tablolar: quizzes, quiz_questions, quiz_options, quiz_attempts, quiz_answers
- İlişki: Quiz belongsTo CourseLesson veya Course (polymorphic quizzable_type/id)
- Soru Tipleri: multiple_choice, true_false, fill_blank
- Puanlama: quiz_attempts tablosunda score, passed, passing_score (default 70)
- Tekrar: max_attempts alanı (null = sınırsız)
- Soru Karıştırma: shuffle_questions, shuffle_options
- Süre: time_limit_minutes (opsiyonel)
3. Sertifika Modülü (Certificate Module)
Yüksek ÖncelikBasit Anlatım
Eğitimi ve sınavı başarıyla tamamlayan kişiye "GİP Akademi Katılım Belgesi" verilecek. PDF olarak indirilebilir, QR kod ile doğrulanabilir.
Nasıl olmalı: Sertifika tasarımı admin panelinden özelleştirilebilmeli. Her sertifikanın benzersiz numarası ve doğrulama QR kodu olmalı.
Neden önemli: Katılım belgesi GİP Akademi'nin somut çıktısı. Güvenilir ve doğrulanabilir olması projenin ciddiyetini artırır.
Teknik Detaylar
- Tablolar: certificates, certificate_templates
- Doğrulama: UUID bazlı unique code + QR (mevcut QR altyapısı genişletilebilir)
- PDF: DomPDF veya Snappy ile dinamik PDF üretimi
- Template: Blade view + CSS ile tasarım, admin'den düzenlenebilir
- İlişki: Certificate belongsTo User, belongsTo Course
- Doğrulama Sayfası: Public /certificate/verify/{code}
4. Çok Adımlı Başvuru Sistemi (Onboarding Wizard)
Yüksek ÖncelikBasit Anlatım
Kullanıcı platforma ilk girdiğinde adım adım ilerleyen bir form doldurmalı: İşletme tipi, faaliyet alanı, mevcut durum. Bu bilgiler kullanıcıya özel eğitim yolu belirlemek için kullanılacak.
Neden önemli: Kullanıcıyı tanımadan doğru eğitimi sunmak mümkün değil. Bu wizard, kişiselleştirilmiş eğitim deneyiminin başlangıç noktası.
Teknik Detaylar
- Tablolar: onboarding_profiles (user_id, business_type, activity_field, business_status, completed_at)
- Frontend: Alpine.js multi-step form (x-show ile adım geçişi)
- Backend: Livewire component veya API endpoint
- Middleware: EnsureOnboardingCompleted → tamamlanmamışı wizard'a yönlendir
- Yönlendirme: business_type + activity_field'e göre recommended_courses
5. Video İçerik Sistemi
Orta ÖncelikBasit Anlatım
Eğitim videoları platformda oynatılabilmeli. Video izleme süresi takip edilmeli: Kullanıcı videonun en az %80'ini izlemeden "tamamladım" diyememeli.
Nasıl olmalı: Başlangıçta YouTube embed yeterli. İleri aşamada kendi video sunucusu düşünülebilir.
Teknik Detaylar
- Player: Plyr.js veya Video.js
- Kaynak: youtube_url, vimeo_url veya local_path
- Takip: JS timeupdate → her 30s progress API → lesson_progress.last_position
- Tamamlama: watched_percentage >= 80 → completed
- Anti-cheat: Tab değişikliği algılama, max 2x hız
6. İlerleme ve Dashboard Sistemi
Orta ÖncelikBasit Anlatım
Kullanıcı giriş yaptığında kontrol panelinde ilerlemesini görür. Tamamlanan dersler yeşil tik, devam edenler turuncu, başlanmamışlar gri.
Neden önemli: İnsanlar ilerlemelerini görmezse motivasyonlarını kaybeder.
Teknik Detaylar
- Kullanıcı Dashboard: Livewire component → enrollments + progress aggregate sorgusu
- Admin Dashboard: Toplam kayıt, tamamlama oranı, sektör dağılımı
- Hesaplama: (completed_lessons / total_lessons) * 100
- Gamification: Opsiyonel rozet sistemi
- Cache: TenantCacheService ile uyumlu
7. Bildirim ve Hatırlatma Sistemi
Düşük ÖncelikBasit Anlatım
Kullanıcıya eğitim hatırlatmaları gönderilmeli. "Eğitiminiz yarım kaldı" gibi e-postalar ve platform içi bildirimler.
Neden önemli: Hatırlatma bildirimleri tamamlama oranını ciddi şekilde artırır. Mevcut Mail modülü üzerine inşa edilebilir.
Teknik Detaylar
- E-posta: Laravel Notification sınıfları
- In-app: Laravel database notification + Livewire dropdown
- Zamanlama: 3 gün inaktif → hatırlatma, 7 gün → ikinci
- Tercihler: notification_preferences tablosu
- Entegrasyon: Mail + Announcement modülleri
Önerilen Uygulama Sırası
Eğitim Modülü + Onboarding Wizard
Projenin temeli. Bunlar olmadan diğer hiçbir şey anlam ifade etmez.
Quiz/Sınav + Sertifika Sistemi
Eğitimin çıktısı. Sınav olmadan sertifika verilmez.
Video Player + İlerleme Dashboard
Başlangıçta YouTube embed ile hızlı başlanabilir.
Bildirim ve Hatırlatma Sistemi
Mevcut Mail ve Announcement modülleri üzerine inşa edilir.
Mevcut Modüllerden Yararlanılabilecekler
Doğrudan Kullanılabilir
- UserManagement: Roller ve izinler
- Blog: Ek bilgilendirme yazıları
- Mail: E-posta bildirimleri altyapısı
- Announcement: Platform duyuruları
- SeoManagement: Sayfa SEO optimizasyonu
- LanguageManagement: Çok dil desteği
Adapte Edilebilir
- Mevcut Sertifika Altyapısı: QR doğrulama eğitim sertifikasına adapte
- MediaManagement: Eğitim görselleri ve PDF'ler
- SettingManagement FormBuilder: Onboarding wizard için baz
- AI Modülü: Eğitim içeriği üretimi
- Search: Eğitim içeriklerinde arama
Dikkat Edilmesi Gereken Konular
Tenant İzolasyonu
Basit: GİP Akademi bir tenant olacak. Eğitim modülü sadece bu tenant'ta aktif olmalı, diğer tenant'lara bulaşmamalı.
Teknik: modules_statuses tenant bazlı kontrol edilmeli. Education modülü sadece ilgili tenant DB'sinde migration çalıştırmalı.
KVKK / Kişisel Veri
Basit: Kullanıcılardan iş bilgisi, faaliyet alanı gibi veriler toplanacak. KVKK aydınlatma metni ve açık rıza onayı gerekli.
Teknik: Onboarding formunda KVKK checkbox + aydınlatma metni linki. consent_given_at timestamp kaydı.
Performans
Basit: Videolar YouTube'da barındırılmalı, sunucuya yük binmemeli.
Teknik: Video streaming kendi sunucuda yapılmamalı. YouTube/Vimeo embed veya CDN kullanılmalı. Progress API rate-limit uygulanmalı.