Route Haritası
Tüm URL'lerin tek tabloda özeti — public, giriş gerekli, öğrenci, eğitmen, admin ayrımı ve dil prefix kuralı.
Bu sayfa Coursio projesindeki tüm route’ları tek bakışta listeler. Path, method, dosya, yetki ve kısa açıklama ile public / auth / öğrenci / eğitmen / admin ayrımı yapılır. API endpoint’lerinin detayı için API Referansı ve GraphQL sayfasına bakın.
Dil prefix kuralı
Section titled “Dil prefix kuralı”- Dil prefix’i olan path’ler:
/:lang/...— Örneğin/tr/pricing,/en/my-courses/learn. Tüm kullanıcı arayüzü sayfaları (ana sayfa, fiyatlandırma, kurslar, hesap, öğrenci paneli, eğitmen paneli, yasal sayfalar) dil prefix’i ile erişilir. Desteklenenlang: tr, en, de, es vb. - Dil prefix’i olmayan path’ler:
- / — Kök; varsayılan locale’e yönlendirilir (
root._index.tsx). - /api/ — Tüm API route’ları (graphql, auth, stripe, certificate, invoice, admin/activities, update-progress vb.).
- /admin, /admin/ — Admin paneli (dil yok).
- /verify/:code — Sertifika doğrulama (public, giriş yok).
- /robots.txt — SEO robots.txt.
- /sitemap.xml — SEO sitemap XML.
- /404, /500 — Hata sayfaları (lang’siz).
- / — Kök; varsayılan locale’e yönlendirilir (
Tüm route’lar — Özet tablo
Section titled “Tüm route’lar — Özet tablo”Dil prefix olmayan route’lar
Section titled “Dil prefix olmayan route’lar”| Path | Method | Dosya | Yetki | Açıklama |
|---|---|---|---|---|
/ | GET | root._index.tsx | public | Kök; varsayılan locale’e redirect. |
/404 | GET | 404.tsx | public | Hata sayfası (lang’siz). |
/500 | GET | 500.tsx | public | Hata sayfası (lang’siz). |
/verify/:code | GET | verify.$code.tsx | public | Sertifika doğrulama (giriş gerekmez). |
/robots.txt | GET | robots[.]txt.ts | public | Dinamik robots.txt. |
/sitemap.xml | GET | sitemap[.]xml.ts | public | Dinamik sitemap XML. |
/admin | GET | admin.tsx + admin._index.tsx | admin | Admin dashboard. |
/admin/courses | GET | admin.courses.tsx | admin | Kurs listesi, onay/red. |
/admin/course/:slug/preview | GET | admin.course.$slug.preview.tsx | admin | Kurs önizleme. |
/admin/users | GET | admin.users.tsx | admin | Kullanıcı listesi. |
/admin/finances | GET | admin.finances.tsx | admin | Finans özeti, gelir havuzu. |
/admin/subscription | GET | admin.subscription.tsx | admin | Abonelik yönetimi. |
/admin/payouts | GET | admin.payouts.tsx | admin | Ödeme talepleri, onay/red. |
/admin/refunds | GET | admin.refunds.tsx | admin | İade listesi. |
/admin/messages | GET | admin.messages.tsx | admin | Admin mesajlar. |
/admin/price-tiers | GET | admin.price-tiers.tsx | admin | Fiyat katmanları CRUD. |
/api/graphql | GET/POST | api.graphql.ts | — | GraphQL endpoint. |
/api/auth/* | * | api.auth.ts | — | Better Auth (giriş, kayıt, OAuth, session). |
/api/stripe/webhook | POST | api.stripe.webhook.ts | — | Stripe webhook. |
/api/stripe/connect-onboarding | POST | api.stripe.connect-onboarding.ts | giriş (instructor) | Stripe Connect onboarding. |
/api/instructor/update-manual-payout | POST | api.instructor.update-manual-payout.ts | instructor | TR manuel ödeme bilgisi. |
/api/lesson-resource-upload | POST | api.lesson-resource-upload.ts | instructor | Ders kaynağı yükleme (Bunny). |
/api/chat-image-upload | POST | api.chat-image-upload.ts | giriş | Sohbet görsel yükleme (Bunny). |
/api/certificate/:id/download | GET | api.certificate.$id.download.ts | giriş | Sertifika PDF indirme. |
/api/certificates/:id/download | GET | api.certificate.$id.download.ts | giriş | Aynı (geriye dönük URL). |
/api/invoice/:enrollmentId/download | GET | api.invoice.$enrollmentId.download.ts | giriş | Fatura PDF indirme. |
/api/admin/activities | GET | api.admin.activities.ts | admin | Admin aktivite listesi (modal). |
/api/update-progress | POST | api.update-progress.ts | giriş | Video izleme ilerlemesi kaydı. |
Dil prefix’li route’lar — Public
Section titled “Dil prefix’li route’lar — Public”| Path | Method | Dosya | Yetki | Açıklama |
|---|---|---|---|---|
/:lang | GET | $lang.tsx + _index.tsx | public | Ana sayfa. |
/:lang/pricing | GET | pricing.tsx | public | Fiyatlandırma sayfası. |
/:lang/teaching | GET | teaching.tsx | public | Eğitmen ol sayfası. |
/:lang/register | GET | register.tsx | public | Kayıt formu. |
/:lang/login | GET | login.tsx | public | Giriş formu. |
/:lang/forgot-password | GET | forgot-password.tsx | public | Şifre sıfırlama talebi. |
/:lang/reset-password | GET | reset-password.tsx | public | Şifre sıfırlama formu (token). |
/:lang/verify-email | GET | verify-email.tsx | public | E-posta doğrulama. |
/:lang/affiliate | GET | affiliate.tsx | public | Affiliate program sayfası. |
/:lang/sitemap | GET | $lang.sitemap.tsx | public | HTML sitemap sayfası. |
/:lang/courses/:category/:subcategory? | GET | courses.all.tsx | public | Kurs listesi (kategori). |
/:lang/course/:id | GET | course.$id.tsx | public | Kurs detay sayfası. |
/:lang/user/:username | GET | user.$username.tsx | public | Kullanıcı profil sayfası. |
/:lang/bundle/:slug | GET | bundle.$slug.tsx | public | Paket (bundle) detay sayfası. |
/:lang/terms | GET | $lang.terms.tsx | public | Yasal sayfalar layout. |
/:lang/terms/privacy-policy | GET | $lang.terms.privacy.tsx | public | Gizlilik politikası. |
/:lang/terms/terms-of-use | GET | $lang.terms.use.tsx | public | Kullanım şartları. |
/:lang/terms/cookie-policy | GET | $lang.terms.cookies.tsx | public | Çerez politikası. |
/:lang/terms/instructor/* | GET | $lang.terms.instructor*.tsx | public | Eğitmen yasal sayfalar. |
/:lang/terms/refund | GET | $lang.terms.refund.tsx | public | İade politikası. |
/:lang/test-error | GET | $lang.test-error.tsx | public | Hata test sayfası. |
/:lang/404, /:lang/500 | GET | 404.tsx, 500.tsx | public | Hata sayfaları (lang’li). |
Dil prefix’li route’lar — Giriş gerekli (öğrenci)
Section titled “Dil prefix’li route’lar — Giriş gerekli (öğrenci)”| Path | Method | Dosya | Yetki | Açıklama |
|---|---|---|---|---|
/:lang/onboarding | GET | onboarding.tsx | giriş | Eğitmen onboarding (kayıt sonrası). |
/:lang/messages | GET | messages.tsx | giriş | Öğrenci mesajlar. |
/:lang/cart | GET | cart.tsx | giriş | Sepet sayfası. |
/:lang/payment/checkout | GET/POST | payment.checkout.tsx | giriş | Ödeme / checkout. |
/:lang/my-courses | GET | my-courses.tsx + my-courses._index.tsx | giriş | Kurslarım (learn’e redirect). |
/:lang/my-courses/learn | GET | my-courses.learning.tsx | giriş | Kurslarım listesi. |
/:lang/my-courses/wishlist | GET | my-courses.wishlist.tsx | giriş | İstek listesi. |
/:lang/my-courses/certifications | GET | my-courses.certifications.tsx | giriş | Sertifikalar. |
/:lang/my-courses/archived | GET | my-courses.archived.tsx | giriş | Arşivlenen kurslar. |
/:lang/my-courses/tools | GET | my-courses.tools.tsx | giriş | Araçlar. |
/:lang/learn/:slug | GET | learn.$slug.tsx | giriş | Öğrenme sayfası (video, müfredat). |
/:lang/account | GET | account.tsx + account._index.tsx | giriş | Hesap (profile’e redirect). |
/:lang/account/profile | GET | account.profile.tsx | giriş | Profil düzenleme. |
/:lang/account/public-profile | GET | account.profile.public.tsx | giriş | Genel profil. |
/:lang/account/password | GET | account.password.tsx | giriş | Şifre değiştir. |
/:lang/account/subscription | GET | account.subscription.tsx | giriş | Abonelik yönetimi. |
/:lang/account/purchase-history | GET | account.purchase-history.tsx | giriş | Satın alma geçmişi. |
/:lang/account/payment-methods | GET | account.payment-methods.tsx | giriş | Ödeme yöntemleri. |
/:lang/account/settings | GET | account.settings.redirect.tsx | giriş | Profile redirect. |
Dil prefix’li route’lar — Eğitmen (instructor)
Section titled “Dil prefix’li route’lar — Eğitmen (instructor)”| Path | Method | Dosya | Yetki | Açıklama |
|---|---|---|---|---|
/:lang/instructor | GET | instructor.tsx + instructor._index.tsx | instructor | Eğitmen dashboard. |
/:lang/instructor/create | GET | instructor.create.tsx | instructor | Yeni kurs oluştur. |
/:lang/instructor/payouts | GET | instructor.payouts.tsx | instructor | Ödeme talepleri, bakiye. |
/:lang/instructor/messages | GET | instructor.messages.tsx | instructor | Eğitmen mesajlar. |
/:lang/instructor/communication | GET | instructor.communication.tsx | instructor | İletişim ayarları. |
/:lang/instructor/performance | GET | instructor.performance.tsx + _index | instructor | Performans özeti. |
/:lang/instructor/performance/students | GET | instructor.performance.students.tsx | instructor | Öğrenci istatistikleri. |
/:lang/instructor/performance/reviews | GET | instructor.performance.reviews.tsx | instructor | Değerlendirmeler. |
/:lang/instructor/course/:slug/manage | GET | instructor.course.$slug.manage.tsx | instructor | Kurs yönetimi layout. |
/:lang/instructor/course/:slug/manage/goals | GET | instructor.course.$slug.manage.goals.tsx | instructor | Hedefler. |
/:lang/instructor/course/:slug/manage/course-structure | GET | instructor.course.$slug.manage.course-structure.tsx | instructor | Bölüm yapısı. |
/:lang/instructor/course/:slug/manage/setup | GET | instructor.course.$slug.manage.setup.tsx | instructor | Kurulum. |
/:lang/instructor/course/:slug/manage/filming | GET | instructor.course.$slug.manage.filming.tsx | instructor | Çekim bilgisi. |
/:lang/instructor/course/:slug/manage/curriculum | GET | instructor.course.$slug.manage.curriculum.tsx | instructor | Müfredat, dersler. |
/:lang/instructor/course/:slug/manage/landing | GET | instructor.course.$slug.manage.landing.tsx | instructor | Landing sayfası. |
/:lang/instructor/course/:slug/manage/pricing | GET | instructor.course.$slug.manage.pricing.tsx | instructor | Kurs fiyatı. |
/:lang/instructor/bundles/create | GET | instructor.bundles.create.tsx | instructor | Yeni paket oluştur. |
/:lang/instructor/bundles/:id/manage | GET | instructor.bundles.$id.manage.tsx | instructor | Paket yönetimi. |
Catch-all
Section titled “Catch-all”| Path | Method | Dosya | Yetki | Açıklama |
|---|---|---|---|---|
/:lang/* (eşleşmeyen) | GET | 404.tsx | public | Lang altında 404. |
* (eşleşmeyen) | GET | 404.tsx | public | Genel 404. |
Yetki kısaltmaları
Section titled “Yetki kısaltmaları”| Yetki | Açıklama |
|---|---|
| public | Giriş gerekmez; herkes erişebilir. |
| giriş | Oturum açmış kullanıcı gerekir; rol kontrolü yok (veya sayfa bazında). |
| instructor | Oturum + user.role === "instructor" (veya eğitmen kaydı tamamlanmış). |
| admin | Oturum + user.role === "admin". |
| — | API; yetki endpoint’e göre (auth, webhook, giriş/instructor/admin). |
- Dil prefix yok:
/,/api/*,/admin/*,/verify/:code,/robots.txt,/sitemap.xml,/404,/500. - Dil prefix var:
/:lang/...— public sayfalar (ana sayfa, pricing, teaching, courses, course, bundle, user, terms, login, register, affiliate, sitemap); giriş gerekli (cart, payment, my-courses, learn, account, messages, onboarding); instructor (instructor/*). - API detayı: Parametreler, body, response için API Referansı ve GraphQL sayfasına bakın.
- Layout ve dosya isimlendirmesi: Proje Yapısı (Detaylı) sayfasında layout hiyerarşisi ve route dosya kuralları açıklanır.