← CourseHub Academy

CourseHub Academy

Coursera tarzı online kurs platformunun iOS uygulaması. SwiftUI ile yazılmış, Hono + Cloudflare D1 backend ile beslenir.

📱 iOS · SwiftUIHono + D1FastAPI (alt)api.coursehub.academy
4
Sekme
Plus
Premium Üyelik
MVVM
Mimari
D1
SQLite
🔗Web sürümü ile aynı backend'i paylaşır

Proje Hakkında

CourseHub Academy iOS, Coursera benzeri online kurs platformunun iOS istemcisidir. SwiftUI + MVVM ile geliştirilmiş; Explore, Learn, Career, Profile olmak üzere 4 sekmeli ana yapıya sahiptir. Kullanıcı kategorilere göre kursları keşfeder, modül bazlı içerikleri inceler, "CourseHub Plus" premium üyelik ile sınırsız erişime geçer. Backend olarak Cloudflare Workers üzerinde Hono + D1 (birincil) ve geliştirme amaçlı Python FastAPI alternatifi kullanılır.

Özellikler

4 Sekmeli Tab Yapısı

Explore (keşfet), Learn (öğren), Career (kariyer) ve Profile sekmeleriyle Coursera tarzı yerleşim.

Kurs Keşfi

Kategoriler, sertifika tipi, profesyonel filtreleri; arama ve önizleme sheet'i ile detaya inmeden hızlı bakış.

Kategoriler

icon_name + ad alanlı kategori sistemi; AllCategoriesView ile tüm kategorileri görme ve filtreleme.

Kurs Detayı

CourseDetailView: about açıklaması, tamamlama süresi, haftalık saat, seviye, dil seçenekleri, modül sayısı.

Modül Yapısı

course_modules: numara, başlık, tamamlama süresi, video sayısı, okuma sayısı, modül puanı.

Beceri Etiketleri

course_skills tablosu — kursun kazandırdığı beceriler etiketler halinde gösterilir.

Özellik Listesi

course_features: icon + başlık + açıklama; "öğreneceklerin" / "kazanımlar" bölümlerinde kullanılır.

Yorumlar

course_reviews tablosu; kullanıcı puanı, yorum metni, ortalama rating + review_count.

Sertifika Tipleri

certificate_type alanı: profesyonel sertifika, uzman sertifikası, başarı belgesi gibi tipler.

CourseHub Plus

CourseHubPlusView ile premium üyelik tanıtımı; sınırsız erişim için aboneliğe yönlendirme.

Onboarding

OnboardingView: ilk açılışta kullanıcıya ürünün değer önerisini gösteren karşılama akışı.

Kurs Önizleme

CoursePreviewSheet — listede kursun üzerine dokunulduğunda alttan açılan hızlı önizleme.

Kullanıcı Yolculuğu

İndirmeden sertifikaya 8 adım

01

İndir & Onboarding

App Store'dan indirme sonrası ilk açılış. OnboardingView ile değer önerisi sunumu (kurs çeşitliliği, sertifikalar, eğitmenler) ve kullanıcı tercih ekranı.

02

Keşfet (Explore)

ExploreView ana ekran: öne çıkan kurslar carousel'i, kategori grid'i, profesyonel sertifika programları. Tüm kategorileri görmek için AllCategoriesView.

03

Kategori → Kurs Listesi

Kategori seçimi ile o alana özel kurslar listelenir; provider, rating, review count ile sıralanır.

04

Kurs Önizleme

Kurs kartına dokunma → CoursePreviewSheet alttan kayar; özet bilgi + "Detaya Git" CTA. Kapatılabilir veya tam detaya geçilebilir.

05

Kurs Detayı

CourseDetailView: kurs hakkında bilgi, modül listesi, kazandırdığı beceriler, eğitmen, dil seçenekleri, tamamlama süresi, yorumlar.

06

Üye Ol / Plus

Kullanıcı kursa kayıt olur veya CourseHub Plus üyelik sunumu görür (sınırsız erişim teklifi).

07

Öğren (Learn)

LearnView ile kayıtlı olunan kursların ilerlemesi, devam eden modüller, tamamlanan dersler ve sertifika takibi.

08

Kariyer (Career) & Profil

CareerView ile kariyer yolculuğu önerileri; ProfileView ile profil yönetimi, sertifikalar, ayarlar.

Sistem Mimarisi

iOS app + 2 backend seçeneği + paylaşımlı veritabanı

   ┌──────────────────────────┐         ┌──────────────────────────┐
   │  iOS App (SwiftUI)        │         │  Web (Next.js)            │
   │  CourseHubAcademy/         │         │  coursera_/ → /coursehubweb │
   └──────────────┬───────────┘         └──────────────┬───────────┘
                  │                                    │
                  └────────────────┬───────────────────┘
                                   ↓
                  ┌────────────────────────────────────┐
                  │  api.coursehub.academy             │
                  │  ┌──────────────────────────────┐  │
                  │  │ Hono + Cloudflare Workers    │  │ ← birincil
                  │  │ Zod + Swagger UI             │  │
                  │  └──────────────────────────────┘  │
                  │  ┌──────────────────────────────┐  │
                  │  │ Python FastAPI (yerel/alt)   │  │ ← geliştirme
                  │  └──────────────────────────────┘  │
                  └────────────────┬───────────────────┘
                                   ↓
                  ┌────────────────────────────────────┐
                  │  Cloudflare D1 (SQLite)            │
                  │  Database: coursehub-db            │
                  │  ID: f859beb8-...                  │
                  └────────────────────────────────────┘

Veri Modeli

D1 üzerinde 7 ana tablo, kurs odaklı yapı

Kurs Yapısı

categoriescoursescourse_details

İçerik & Öğrenim

course_modulescourse_featurescourse_skills

Sosyal Kanıt

course_reviews

Teknoloji Yığını

iOS
Swift + SwiftUI
Mimari
MVVM + ContentView root
Models
Course.swift, Category.swift
Services
NetworkManager.swift
Backend (1)
Hono 4.6 + Cloudflare Workers
Backend (2)
Python FastAPI + asyncpg + Pydantic
Veritabanı
Cloudflare D1 (SQLite) — coursehub-db
API Şema
Zod + @hono/zod-openapi + Swagger UI
API Domain
api.coursehub.academy
Database ID
f859beb8-3de4-4dbd-918c-04c4913aba90

Web Sürümünü de İncele

Aynı kurs kataloğu, aynı backend — Next.js 16 + Tailwind v4 ile yazılmış tarayıcı sürümü.

CourseHub Web →