Proje: OkulUp · Hub: OkulUp — Architecture

Backend API Genel Bakış

Backend: Laravel + Sanctum, lokasyon: /Users/furkannamli/Desktop/project/kampusapi/kampus

Public Endpoint’ler (Auth Gerektirmez)

POST /api/register          → kayıt
POST /api/login             → giriş
POST /api/forgot-password   → şifre sıfırlama
POST /api/auth/social       → social auth (Google/Apple)
GET  /api/schools           → okul arama (enrollment için)
GET  /api/health            → sistem sağlık kontrolü

Feature Middleware

Backend’de feature:xyz middleware — ilgili özellik kapalıysa 403 döner:

  • feature:messaging — tüm conversation/message endpoint’leri
  • feature:broadcast_messaging — broadcast mesaj
  • feature:assignments — ödevler (tüm endpoint’ler)
  • feature:academic_reports — akademik özet
  • feature:attendance_reports — yoklama raporu export
  • feature:payment_summary — ödeme export
  • feature:document_requests — belge talepleri
  • feature:meal_menu — yemek menüsü

Authenticated Endpoint Grupları

Tüm auth endpoint’ler auth:sanctum + throttle:api middleware altında.

Auth: logout, me, change-password, delete-account, refresh-token Users: CRUD /api/users, avatar upload/delete Announcements: CRUD + read-mark + attachments + export Conversations: liste, detay, mesaj gönder, broadcast Notifications: liste, unread-count, mark-read, preferences Classes: CRUD, daily-overview Schedule: today, week, student Appointments: CRUD + cancel + teacher availability + selection data Tracking: CRUD + bulk + daily + summary + categories Attendances: CRUD + bulk + class-attendance + report Payments: CRUD + payment types + mark-paid + reminder + receipt upload + export Events: CRUD + RSVP + cover upload Galleries: CRUD + approve/reject + media upload/delete Assignments: CRUD + publish/close + submit + parent-submit + review + attachments Reports/Exports: attendance export, payment export, download Document Requests: CRUD + approve/reject/complete/cancel + upload Meal Menus: CRUD + attachment upload/delete Other: dashboard (5 tip), mobile-config, app-config, preferences, notes, school-settings, enrollment

Health Endpoint

GET /api/health — DB, Redis, Queue, Storage kontrolleri + latency

Throttle Kuralları

  • throttle:login — login/register
  • throttle:message — mesaj gönderme
  • throttle:upload — dosya yükleme (ayrı limit)
  • throttle:api — genel authenticated endpoint’ler
  • throttle:school-search — okul arama