Proje: OkulUp · Hub: OkulUp — Domain

Takvim Sistemi

Özellikleri

Takvim üç veri kaynağını birleştiriyor:

  1. Etkinlikler (useCalendarEvents) — GET /api/events ile school/class events
  2. Ödevler (useAssignments) — due_date’e göre takvimde gösterilen
  3. Randevular (useAppointments) — appointment_date’e göre

useCalendarData(month) hook’u bu üçünü birleştirip CalendarEvent[] döndürüyor.

CalendarEvent Birleşik Tip

CalendarEvent: {
  id: string          // "event-123" | "assignment-456" | "appointment-789"
  title: string
  type: 'event' | 'assignment' | 'appointment'
  time: string        // saat veya tarih
  location: string
  date: Date
}

Kişisel Notlar

NoteController — kişisel not CRUD (kalender içinden). useNotes, useCreateNote, useUpdateNote, useDeleteNote hookları. Notlar backend’de kayıtlı, sadece authenticated user’a ait.

Expo Calendar Entegrasyonu

expo-calendar kurulu — etkinlikleri iOS/Android native takvimine ekleme özelliği var (izin gerekiyor: NSCalendarsFullAccessUsageDescription).