Proje: OkulUp API · Hub: OkulUp API — Domain

OkulUp API — Ödev Akışı

Durum Makinesi

[draft] --publish--> [published] --close--> [closed]

publish Adımında Otomatik Oluşturulan Submission’lar

Öğretmen POST /assignments/{id}/publish çağırdığında:

  1. Assignment status: draftpublished
  2. Sınıftaki her öğrenci için AssignmentSubmission kaydı oluşturulur (status: pending)
  3. Öğrencilere + velilere assignment_published bildirimi gönderilir (kuyruk job)

Submission Durumları

StatusAçıklama
pendingPublish ile otomatik oluşturulur
submittedÖğrenci/veli zamanında teslim etti
lateDue date geçtikten sonra teslim
reviewedÖğretmen inceledi, not verdi

API Endpoint’leri

MethodPathAçıklama
GET/assignmentsListele (rol bazlı filtre)
POST/assignmentsOluştur (draft)
GET/assignments/{id}Detay
PUT/assignments/{id}Güncelle
POST/assignments/{id}/publishYayınla + submissions oluştur
GET/assignments/{id}/submissionsSubmission listesi
POST/assignments/{id}/submitÖğrenci teslim
POST/assignments/{id}/parent-submitVeli adına teslim
POST/assignments/{id}/reviewÖğretmen not/feedback
POST/assignments/{id}/attachmentsDosya ekle
POST/assignments/{id}/closeKapat

Yetki Kuralları

  • Oluşturma: teacher (kendi sınıfı) + admin/manager
  • Publish/Close/Review: AssignmentPolicy@manage (teacher of class + admin/manager)
  • Submit: student (kendi submission’ı)
  • Parent Submit: parent (çocuğu için)
  • Görme:
    • teacher: kendi sınıfları
    • student: kendi sınıflarının published ödevleri
    • parent: çocuklarının sınıflarının published ödevleri

Feature Flag

feature:assignments middleware — varsayılan OFF. Okulun school_settings.features.assignments = true olmalı.