Skip to content

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’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. Desteklenen lang: 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).

PathMethodDosyaYetkiAçıklama
/GETroot._index.tsxpublicKök; varsayılan locale’e redirect.
/404GET404.tsxpublicHata sayfası (lang’siz).
/500GET500.tsxpublicHata sayfası (lang’siz).
/verify/:codeGETverify.$code.tsxpublicSertifika doğrulama (giriş gerekmez).
/robots.txtGETrobots[.]txt.tspublicDinamik robots.txt.
/sitemap.xmlGETsitemap[.]xml.tspublicDinamik sitemap XML.
/adminGETadmin.tsx + admin._index.tsxadminAdmin dashboard.
/admin/coursesGETadmin.courses.tsxadminKurs listesi, onay/red.
/admin/course/:slug/previewGETadmin.course.$slug.preview.tsxadminKurs önizleme.
/admin/usersGETadmin.users.tsxadminKullanıcı listesi.
/admin/financesGETadmin.finances.tsxadminFinans özeti, gelir havuzu.
/admin/subscriptionGETadmin.subscription.tsxadminAbonelik yönetimi.
/admin/payoutsGETadmin.payouts.tsxadminÖdeme talepleri, onay/red.
/admin/refundsGETadmin.refunds.tsxadminİade listesi.
/admin/messagesGETadmin.messages.tsxadminAdmin mesajlar.
/admin/price-tiersGETadmin.price-tiers.tsxadminFiyat katmanları CRUD.
/api/graphqlGET/POSTapi.graphql.tsGraphQL endpoint.
/api/auth/**api.auth.tsBetter Auth (giriş, kayıt, OAuth, session).
/api/stripe/webhookPOSTapi.stripe.webhook.tsStripe webhook.
/api/stripe/connect-onboardingPOSTapi.stripe.connect-onboarding.tsgiriş (instructor)Stripe Connect onboarding.
/api/instructor/update-manual-payoutPOSTapi.instructor.update-manual-payout.tsinstructorTR manuel ödeme bilgisi.
/api/lesson-resource-uploadPOSTapi.lesson-resource-upload.tsinstructorDers kaynağı yükleme (Bunny).
/api/chat-image-uploadPOSTapi.chat-image-upload.tsgirişSohbet görsel yükleme (Bunny).
/api/certificate/:id/downloadGETapi.certificate.$id.download.tsgirişSertifika PDF indirme.
/api/certificates/:id/downloadGETapi.certificate.$id.download.tsgirişAynı (geriye dönük URL).
/api/invoice/:enrollmentId/downloadGETapi.invoice.$enrollmentId.download.tsgirişFatura PDF indirme.
/api/admin/activitiesGETapi.admin.activities.tsadminAdmin aktivite listesi (modal).
/api/update-progressPOSTapi.update-progress.tsgirişVideo izleme ilerlemesi kaydı.
PathMethodDosyaYetkiAçıklama
/:langGET$lang.tsx + _index.tsxpublicAna sayfa.
/:lang/pricingGETpricing.tsxpublicFiyatlandırma sayfası.
/:lang/teachingGETteaching.tsxpublicEğitmen ol sayfası.
/:lang/registerGETregister.tsxpublicKayıt formu.
/:lang/loginGETlogin.tsxpublicGiriş formu.
/:lang/forgot-passwordGETforgot-password.tsxpublicŞifre sıfırlama talebi.
/:lang/reset-passwordGETreset-password.tsxpublicŞifre sıfırlama formu (token).
/:lang/verify-emailGETverify-email.tsxpublicE-posta doğrulama.
/:lang/affiliateGETaffiliate.tsxpublicAffiliate program sayfası.
/:lang/sitemapGET$lang.sitemap.tsxpublicHTML sitemap sayfası.
/:lang/courses/:category/:subcategory?GETcourses.all.tsxpublicKurs listesi (kategori).
/:lang/course/:idGETcourse.$id.tsxpublicKurs detay sayfası.
/:lang/user/:usernameGETuser.$username.tsxpublicKullanıcı profil sayfası.
/:lang/bundle/:slugGETbundle.$slug.tsxpublicPaket (bundle) detay sayfası.
/:lang/termsGET$lang.terms.tsxpublicYasal sayfalar layout.
/:lang/terms/privacy-policyGET$lang.terms.privacy.tsxpublicGizlilik politikası.
/:lang/terms/terms-of-useGET$lang.terms.use.tsxpublicKullanım şartları.
/:lang/terms/cookie-policyGET$lang.terms.cookies.tsxpublicÇerez politikası.
/:lang/terms/instructor/*GET$lang.terms.instructor*.tsxpublicEğitmen yasal sayfalar.
/:lang/terms/refundGET$lang.terms.refund.tsxpublicİade politikası.
/:lang/test-errorGET$lang.test-error.tsxpublicHata test sayfası.
/:lang/404, /:lang/500GET404.tsx, 500.tsxpublicHata sayfaları (lang’li).

Dil prefix’li route’lar — Giriş gerekli (öğrenci)

Section titled “Dil prefix’li route’lar — Giriş gerekli (öğrenci)”
PathMethodDosyaYetkiAçıklama
/:lang/onboardingGETonboarding.tsxgirişEğitmen onboarding (kayıt sonrası).
/:lang/messagesGETmessages.tsxgirişÖğrenci mesajlar.
/:lang/cartGETcart.tsxgirişSepet sayfası.
/:lang/payment/checkoutGET/POSTpayment.checkout.tsxgirişÖdeme / checkout.
/:lang/my-coursesGETmy-courses.tsx + my-courses._index.tsxgirişKurslarım (learn’e redirect).
/:lang/my-courses/learnGETmy-courses.learning.tsxgirişKurslarım listesi.
/:lang/my-courses/wishlistGETmy-courses.wishlist.tsxgirişİstek listesi.
/:lang/my-courses/certificationsGETmy-courses.certifications.tsxgirişSertifikalar.
/:lang/my-courses/archivedGETmy-courses.archived.tsxgirişArşivlenen kurslar.
/:lang/my-courses/toolsGETmy-courses.tools.tsxgirişAraçlar.
/:lang/learn/:slugGETlearn.$slug.tsxgirişÖğrenme sayfası (video, müfredat).
/:lang/accountGETaccount.tsx + account._index.tsxgirişHesap (profile’e redirect).
/:lang/account/profileGETaccount.profile.tsxgirişProfil düzenleme.
/:lang/account/public-profileGETaccount.profile.public.tsxgirişGenel profil.
/:lang/account/passwordGETaccount.password.tsxgirişŞifre değiştir.
/:lang/account/subscriptionGETaccount.subscription.tsxgirişAbonelik yönetimi.
/:lang/account/purchase-historyGETaccount.purchase-history.tsxgirişSatın alma geçmişi.
/:lang/account/payment-methodsGETaccount.payment-methods.tsxgirişÖdeme yöntemleri.
/:lang/account/settingsGETaccount.settings.redirect.tsxgirişProfile redirect.

Dil prefix’li route’lar — Eğitmen (instructor)

Section titled “Dil prefix’li route’lar — Eğitmen (instructor)”
PathMethodDosyaYetkiAçıklama
/:lang/instructorGETinstructor.tsx + instructor._index.tsxinstructorEğitmen dashboard.
/:lang/instructor/createGETinstructor.create.tsxinstructorYeni kurs oluştur.
/:lang/instructor/payoutsGETinstructor.payouts.tsxinstructorÖdeme talepleri, bakiye.
/:lang/instructor/messagesGETinstructor.messages.tsxinstructorEğitmen mesajlar.
/:lang/instructor/communicationGETinstructor.communication.tsxinstructorİletişim ayarları.
/:lang/instructor/performanceGETinstructor.performance.tsx + _indexinstructorPerformans özeti.
/:lang/instructor/performance/studentsGETinstructor.performance.students.tsxinstructorÖğrenci istatistikleri.
/:lang/instructor/performance/reviewsGETinstructor.performance.reviews.tsxinstructorDeğerlendirmeler.
/:lang/instructor/course/:slug/manageGETinstructor.course.$slug.manage.tsxinstructorKurs yönetimi layout.
/:lang/instructor/course/:slug/manage/goalsGETinstructor.course.$slug.manage.goals.tsxinstructorHedefler.
/:lang/instructor/course/:slug/manage/course-structureGETinstructor.course.$slug.manage.course-structure.tsxinstructorBölüm yapısı.
/:lang/instructor/course/:slug/manage/setupGETinstructor.course.$slug.manage.setup.tsxinstructorKurulum.
/:lang/instructor/course/:slug/manage/filmingGETinstructor.course.$slug.manage.filming.tsxinstructorÇekim bilgisi.
/:lang/instructor/course/:slug/manage/curriculumGETinstructor.course.$slug.manage.curriculum.tsxinstructorMüfredat, dersler.
/:lang/instructor/course/:slug/manage/landingGETinstructor.course.$slug.manage.landing.tsxinstructorLanding sayfası.
/:lang/instructor/course/:slug/manage/pricingGETinstructor.course.$slug.manage.pricing.tsxinstructorKurs fiyatı.
/:lang/instructor/bundles/createGETinstructor.bundles.create.tsxinstructorYeni paket oluştur.
/:lang/instructor/bundles/:id/manageGETinstructor.bundles.$id.manage.tsxinstructorPaket yönetimi.
PathMethodDosyaYetkiAçıklama
/:lang/* (eşleşmeyen)GET404.tsxpublicLang altında 404.
* (eşleşmeyen)GET404.tsxpublicGenel 404.

YetkiAçıklama
publicGiriş gerekmez; herkes erişebilir.
girişOturum açmış kullanıcı gerekir; rol kontrolü yok (veya sayfa bazında).
instructorOturum + user.role === "instructor" (veya eğitmen kaydı tamamlanmış).
adminOturum + 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.