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:
- Assignment status:
draft→published - Sınıftaki her öğrenci için
AssignmentSubmissionkaydı oluşturulur (status:pending) - Öğrencilere + velilere
assignment_publishedbildirimi gönderilir (kuyruk job)
Submission Durumları
| Status | Açıklama |
|---|---|
pending | Publish ile otomatik oluşturulur |
submitted | Öğrenci/veli zamanında teslim etti |
late | Due date geçtikten sonra teslim |
reviewed | Öğretmen inceledi, not verdi |
API Endpoint’leri
| Method | Path | Açıklama |
|---|---|---|
| GET | /assignments | Listele (rol bazlı filtre) |
| POST | /assignments | Oluştur (draft) |
| GET | /assignments/{id} | Detay |
| PUT | /assignments/{id} | Güncelle |
| POST | /assignments/{id}/publish | Yayınla + submissions oluştur |
| GET | /assignments/{id}/submissions | Submission listesi |
| POST | /assignments/{id}/submit | Öğrenci teslim |
| POST | /assignments/{id}/parent-submit | Veli adına teslim |
| POST | /assignments/{id}/review | Öğretmen not/feedback |
| POST | /assignments/{id}/attachments | Dosya ekle |
| POST | /assignments/{id}/close | Kapat |
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ı.
Related
- feature-flag-sistemi — assignments feature flag varsayılan KAPALI
- bildirim-sistemi — SendAssignmentNotificationJob
- akademik-ozet-raporu — assignment summary raporu