Skip to content

Repository files navigation

📋 Internship Tracker

Staj başvurularını takip eden, iş ilanlarını listeleyen ve şirket konumlarını haritada gösteren iOS uygulaması.

Swift iOS SwiftUI SwiftData Architecture License


📸 Ekran Görüntüleri

WhatsApp Image 2026-06-03 at 17 35 10 WhatsApp Image 2026-06-03 at 17 35 15 WhatsApp Image 2026-06-03 at 17 35 18 WhatsApp Image 2026-06-03 at 17 35 14 WhatsApp Image 2026-06-03 at 17 35 11 WhatsApp Image 2026-06-03 at 17 35 16

🚀 Özellikler

Özellik Açıklama
📝 Başvuru Takibi Staj başvurularını duruma göre takip edin: Beklemede, Mülakat, Teklif, Red
🌐 İş İlanları Remotive Public API üzerinden gerçek zamanlı uzaktan ilanlar
🔔 Bildirimler Yeni ilan algılandığında otomatik local notification
🗺️ Harita Apple Maps ile şirket konumu görüntüleme ve yol tarifi
💾 Kalıcı Depolama SwiftData ile cihaz üzerinde yerel veri saklama
🧪 Test Bildirimi "Test bildirimi gönder" butonu ile bildirim sistemini deneme

🛠️ Teknolojiler

  • Dil: Swift 5.9
  • UI Framework: SwiftUI
  • Veri Katmanı: SwiftData
  • Ağ: URLSession
  • Harita: MapKit & Apple Maps
  • Bildirimler: UserNotifications Framework
  • Mimari: Clean Architecture + MVVM
  • Minimum iOS: iOS 17

🏗️ Mimari

Proje Clean Architecture prensiplerine uygun, katmanlı bir yapıda geliştirilmiştir:

┌─────────────────────────────────────┐
│         Presentation Layer          │
│     SwiftUI View + ViewModel        │
├─────────────────────────────────────┤
│           Domain Layer              │
│       Use Cases + Protocols         │
├─────────────────────────────────────┤
│            Data Layer               │
│   Repository + Remote + Local       │
└─────────────────────────────────────┘
  • View: Yalnızca UI bileşenlerini barındırır, iş mantığı içermez
  • ViewModel: @Observable ile reaktif veri akışını yönetir
  • Repository: Yerel (SwiftData) ve uzak (Remotive API) veri kaynaklarını soyutlar

⚙️ Kurulum

Gereksinimler

  • Xcode 15+
  • iOS 17+ simülatör veya gerçek cihaz
  • macOS Ventura veya üzeri

Adımlar

# 1. Repoyu klonlayın
git clone https://github.com/devberatzengin/IntershipTrackerDemo.git

# 2. Proje dizinine girin
cd IntershipTrackerDemo

# 3. Xcode ile açın
open "Internship Tracker.xcodeproj"

İzinler

Xcode → Target → Info bölümüne aşağıdaki anahtarı ekleyin:

Key Value
NSLocationWhenInUseUsageDescription Şirket konumlarını haritada göstermek ve yol tarifi oluşturmak için konumunuzu kullanıyoruz.

🔔 Bildirim Sistemi

Uygulama açılışında notification izni istenir.

Nasıl çalışır?

  1. İlk API çekişinde mevcut ilanlar "görülmüş" kabul edilir — bildirim gönderilmez
  2. Sonraki yenilemede yeni ilan id'leri tespit edilirse local notification tetiklenir
  3. Test için: Staj İlanları ekranı → "Test bildirimi gönder" → Uygulamayı arka plana alın → ~2 saniye sonra bildirim gelir

💡 Bildirim geçmişini sıfırlamak için "İlan bildirim geçmişini sıfırla" butonunu kullanabilirsiniz.


🌐 API

Bu proje Remotive Public API kullanmaktadır.

GET https://remotive.com/api/remote-jobs
  • Ücretsiz, kayıt gerektirmez
  • Gerçek zamanlı uzaktan çalışma ilanları döner

📁 Proje Yapısı

Internship Tracker/
├── App/
│   └── InternshipTrackerApp.swift
├── Presentation/
│   ├── Applications/          # Başvuru listesi ve detay ekranları
│   ├── Jobs/                  # Remotive ilanları ekranı
│   ├── Map/                   # Harita ekranı
│   └── Settings/              # Ayarlar
├── Domain/
│   ├── Models/                # Uygulama modelleri
│   └── UseCases/              # İş mantığı
├── Data/
│   ├── Remote/                # API servisleri
│   └── Local/                 # SwiftData repository
└── Core/
    └── Extensions/            # Yardımcı uzantılar

👤 Geliştirici


"I know, I misspelled it, it should have been internship, but oh well." 😄

About

I know, I misspelled it, it should have been internship, but oh well.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages