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 Achidemy 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, video-telemetry, update-progress (legacy) 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.
    • /401, /404, /500 — Hata sayfaları (lang’siz).

PathMethodDosyaYetkiAçıklama
/GETroot._index.tsxpublicKök; varsayılan locale’e redirect.
/401GET401.tsxpublicUnauthorized hata sayfası (oturum sonlandırıldı).
/404GET404.tsxpublicNot Found hata sayfası.
/500GET500.tsxpublicServer Error hata sayfası.
/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/supportGETadmin.support.tsxadminDestek masası (kanban, ticket yönetimi).
/admin/price-tiersGETadmin.price-tiers.tsxadminFiyat katmanları CRUD.
/admin/kyc-requestsGETadmin.kyc-requests.tsxadminKYC liste paneli (eğitmen kimlik doğrulama).
/admin/kyc/:userId/previewGET/POSTadmin.kyc.$userId.preview.tsxadminKYC detay/onay sayfası (kimlik belgeleri, onay/red).
/admin/categoriesGETadmin.categories.tsxadminKategori yönetimi (3 seviyeli kategori ağacı CRUD).
/admin/reportsGETadmin.reports.tsxadminKurs bazlı şikayet listesi (DMCA, Safe Harbor).
/admin/reports/:courseIdGET/POSTadmin.reports.$courseId.tsxadminSeçili kurs için şikayet detay sayfası, incelemeye alma ve bildirim akışı.
/admin/marketingGETadmin.marketing.tsxadminPazarlama içerikleri yönetimi.
/admin/blogGETadmin.blog.tsxadminBlog yazıları yönetimi (CRUD).
/admin/careersGETadmin.careers.tsxadminKariyer ilanları yönetimi (CRUD).
/admin/careers/:idGETadmin.careers.$id.tsxadminİlana gelen başvuruların listesi + aday detay inceleme.
/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/instructor/submit-kycPOSTapi.instructor.submit-kyc.tsgirişKYC başvurusu (kimlik belgesi yükleme).
/api/lesson-resource-uploadPOSTapi.lesson-resource-upload.tsinstructorDers kaynağı yükleme (Bunny).
/api/bunny/create-uploadPOSTapi.bunny.create-upload.tsinstructorBunny TUS ile video yükleme (create upload URL).
/api/lesson/caption-uploadPOSTapi.lesson.caption-upload.tsinstructorVideo altyazısı (.vtt) yükleme (Bunny Stream).
/api/lesson/caption-deletePOSTapi.lesson.caption-delete.tsinstructorVideo altyazısı silme (Bunny Stream).
/api/chat-image-uploadPOSTapi.chat-image-upload.tsgirişSohbet görsel yükleme (Bunny).
/api/blog-image-uploadPOSTapi.blog-image-upload.tspublicBlog kapak görseli yükleme (Bunny Storage). FormData: file, slug
/api/career-cv-uploadPOSTapi.career-cv-upload.tspublicKariyer CV PDF yükleme (Bunny Storage). FormData: jobId, file
/api/admin/career-cv/:applicationId/downloadGETapi.admin.career-cv.$applicationId.download.tsadminAdmin-only CV indir (Bunny Storage proxy, PDF stream).
/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/video-telemetryPOSTapi.video-telemetry.tsgirişVideo telemetri heartbeat (15 sn blok).
/api/update-progressPOSTapi.update-progress.tsgirişVideo izleme ilerlemesi kaydı.
/api/support-deflectPOSTapi.support-deflect.tsgirişAI destek asistanı; ticket öncesi çözüm önerisi (deflection).
/api/algolia-syncGETapi.algolia-sync.tsAlgolia kurs index’ine toplu senkronizasyon ve index ayarları.
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/aboutGET$lang.about.tsxpublicHakkımızda sayfası.
/:lang/contactGET$lang.contact.tsxpublicİletişim sayfası.
/:lang/investorsGET$lang.investors.tsxpublicYatırımcılar sayfası.
/:lang/blogGET$lang.blog.tsxpublicBlog yazıları liste sayfası.
/:lang/blog/:slugGET$lang.blog.$slug.tsxpublicBlog yazısı detay sayfası.
/:lang/careersGET$lang.careers.tsxpublicKariyer ilanları listesi.
/:lang/careers/:slugGET/POST$lang.careers.$slug.tsxpublicİlan detayı + başvuru (POST).
/:lang/sitemapGET$lang.sitemap.tsxpublicHTML sitemap sayfası.
/:lang/coursesGETcourses.index.tsxpublicKurs keşfet ana sayfa (tüm kurslar, kategori ağacı, keşfet bölümleri).
/:lang/courses/searchGETcourses.search.tsxpublicKurs arama sayfası (query parametreleri ile).
/:lang/courses/:categoryGETcourses.all.tsxpublicKurs listesi (ana kategori; örn. development).
/:lang/courses/:category/:subcategoryGETcourses.all.tsxpublicKurs listesi (alt kategori; örn. data-science).
/:lang/courses/:category/:subcategory/:topicGETcourses.all.tsxpublicKurs listesi (konu; örn. python).
/:lang/course/:idGETcourse.$id.tsxpublicKurs detay sayfası.
/:lang/user/:usernameGETuser.$username.tsxpublicKullanıcı profil sayfası.
/:lang/bundle/:slugGETbundle.$slug.tsxpublicPaket (bundle) vitrin; kurs detayıyla aynı grid + sağ yapışkan kart (promo video kart içinde), PPP (getBundleRegionalPrice), ?ref= affiliate cookie.
/: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/coming-soonGET$lang.coming-soon.tsxpublicYakında sayfası.
/:lang/mobile-appGET$lang.mobile-app.tsxpublicMobil uygulama tanıtım sayfası.
/:lang/businessGET$lang.business.tsxpublicKurumsal çözümler sayfası.
/:lang/enterprise-solutionGET$lang.enterprise-solution.tsxpublicEnterprise çözüm sayfası.
/:lang/accessibility-statementGET$lang.accessibility-statement.tsxpublicErişilebilirlik beyanı.
/:lang/401GET401.tsxpublicUnauthorized hata sayfası (lang’li).
/:lang/404GET404.tsxpublicNot Found hata sayfası (lang’li).
/:lang/500GET500.tsxpublicServer Error hata sayfası (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.tsxpublicSepet sayfası; misafir sepeti çerezden (guest_cart) okunur, giriş sonrası loader DB ile merge eder ve çerezi temizler.
/: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şÖğrenci araçları hub (çalışma planlayıcı, pomodoro, AI özet, streak haritası).
/:lang/my-courses/tools/calendarGETmy-courses.tools.calendar.tsxgirişAkıllı Çalışma Planlayıcı; enrolled kurslardan haftalık çalışma rutini oluşturup takvime ekler.
/: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/notificationsGETaccount.notifications.tsxgirişBildirimler sayfası (uygulama içi).
/:lang/account/supportGETaccount.support.tsxgirişÖğrenci/eğitmen destek masası (ticket + AI asistan).
/:lang/account/settingsGETaccount.settings.tsxgirişHesap ayarları.

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 (sekmeler: courses, bundles, coupons, trash).
/:lang/instructor?tab=couponsGETinstructor._index.tsxinstructorKuponlar sekmesi (liste, oluştur, aç/kapat, sil).
/:lang/instructor/couponsGETinstructor.coupons.tsxinstructorRedirect → /instructor?tab=coupons.
/:lang/instructor/createGETinstructor.create.tsxinstructorYeni kurs oluştur.
/:lang/instructor/payoutsGETinstructor.payouts.tsxinstructorÖdeme talepleri, bakiye, KYC formu (?tab=payment).
/: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/captionsGETinstructor.course.$slug.manage.captions.tsxinstructorVideo altyazıları yönetimi.
/: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/course/:slug/manage/promotionsGETinstructor.course.$slug.manage.promotions.tsxinstructorPromosyonlar ve kuponlar (bu kursa özel).
/:lang/instructor/course/:idGETinstructor.course.$id.tsxinstructorKurs detay/redirect sayfası.
/:lang/instructor/bundlesGETinstructor.bundles._index.tsxinstructorPaket listesi; modal ile yeni paket oluşturma.
/:lang/instructor/bundles/:id/manageGETinstructor.bundles.$id.manage.tsxinstructorPaket yönetimi.
/:lang/instructor/toolsGETinstructor.tools.tsx + instructor.tools._index.tsxinstructorEğitmen AI Araçları merkezi (sosyal medya, pazar öngörüleri, AI quiz, AI müfredat).
/:lang/instructor/tools/social-mediaGETinstructor.tools.social-media.tsxinstructorSosyal medya içerik fabrikası (X, LinkedIn, Reels).
/:lang/instructor/tools/market-insightsGETinstructor.tools.market-insights.tsxinstructorPazar öngörüleri aracı.
/:lang/instructor/tools/ai-quizGETinstructor.tools.ai-quiz.tsxinstructorAI quiz oluşturucu.
/:lang/instructor/tools/ai-syllabusGETinstructor.tools.ai-syllabus.tsxinstructorAI müfredat (syllabus) oluşturucu.
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, /401, /404, /500.
  • Dil prefix var: /:lang/... — public sayfalar (ana sayfa, pricing, teaching, courses [index / search / category/subcategory/topic], course, bundle, user, terms, login, register, affiliate, sitemap, coming-soon, mobile-app, business, enterprise-solution, accessibility-statement); giriş gerekli (cart, payment, my-courses, learn, account, messages, onboarding); instructor (instructor/*, instructor/tools ve alt sayfalar: social-media, market-insights, ai-quiz, ai-syllabus).
  • Kurs keşfet: /:lang/courses (index), /:lang/courses/search, /:lang/courses/:category ve alt path’ler için route ayrımı ve keşfet bölümleri Kurs Keşfet ve Arama sayfasında açıklanır.
  • 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.