Online eğitim platformlarında içerik mimarisini kurarken üç farklı nesne aynı anda masada olur: kurslar, kategoriler ve öğretmenler. Bu üçü birbirine bağlıdır ama aynı hiyerarşiye sığmaz. Bir kurs hem bir konuya hem bir öğretmene aittir; aynı öğretmen birden fazla kategoride kurs verebilir, aynı konu farklı seviyelerde işlenebilir. Yapıyı doğrudan hiyerarşik düşünmek, bu çok yönlü ilişkileri tek bir ağaçta çözmeye çalışır ve çoğu durumda çıkmaza girer.
İlk tasarım kararı genellikle şu soruyla başlar: kategoriler mi öne çıkar, öğretmenler mi? Hangisini ana navigasyon olarak seçerseniz seçin, diğerini ikincil konuma itmek zorunda kalırsınız. Oysa bu ikilik baştan yanlış bir çerçevedir; iki nesne de bağımsız ölçeklenebilir URL ve sayfa yapısına sahip olduğunda ayrım kendiliğinden çözülür.
Platform küçükken bu ayrım önemsiz görünür. On kurs, üç kategori, beş öğretmen varsa her şey elle yönetilebilir. Yüz kursa, yirmi kategoriye ve elli öğretmene ulaştığınızda başlangıçta kurulan yapı ya kolayca büyür ya da herkesi yorar; aradaki fark, varlıkların başından beri birbirinden ayrı tutulup tutulmadığına bağlıdır.
Kurs, kategori ve öğretmen ayrı varlıklar; birini diğerine gömmek ikisini de kısıtlar
Bir kategorinin altına öğretmen sayfası koymak mantıklı görünebilir: /kategoriler/web-gelistirme/egitmenler/ali-yilmaz/ gibi bir URL sezgiseldir. Ancak bu öğretmen ilerleyen dönemde veri bilimi kursu da açarsa o URL artık çelişkili bir anlam taşır. Öğretmen profilini kategori hiyerarşisine gömmek, öğretmeni o kategoriye kilitlemiş demektir.
Aynı sorun ters yönde de çıkar. Kategori yapısını öğretmen ekseninde kurarsanız, kategori sayfaları öğretmen gelip gittikçe anlam kaybeder ya da boşalır. Kalıcı varlıklar geçici ilişkilerden bağımsız yaşamalıdır.
Platform ölçeklendiğinde bağımsız varlıklar bağımsız URL ağaçlarına ihtiyaç duyar: /kurslar/, /kategoriler/, /egitmenler/ gibi üç farklı kök. Her varlık kendi kökünden büyüdüğünde aralarındaki ilişkiler bu kökleri karıştırmadan kurulabilir. Bu kararı baştan vermek, ilerleyen dönemdeki yönlendirme planı maliyetlerinden sizi korur; çünkü kökleri değiştirmek yerine ilişkileri güncellemek yeterli olur.
Kategori yapısı konu mu, seviye mi yoksa her ikisi birden mi olmalı?
Konu bazlı kategoriler çoğu platformun ilk tercihi olur: Programlama, Tasarım, Pazarlama, Veri Bilimi. Bu yapı sezgisel ve kullanıcı için tanıdıktır. Ancak farklı seviyelerdeki kullanıcıları aynı kategori sayfasına yığar: Python'a yeni başlayan biri ile ileri düzey makine öğrenmesi arayan biri aynı sayfada buluşur ve biri hayal kırıklığıyla ayrılır.
Seviye bazlı kategoriler (Başlangıç, Orta, İleri) ise konuyu yok sayar. "İleri Düzey" sayfasında hem tasarım hem programlama hem finans kursları yer alır; kullanıcı hangi ileri düzey içeriği aradığını bilir ama sayfa buna yanıt vermez.
İki eksenin kesişimi olan matris yapısı ilk bakışta çekici görünür. Yönetmesi güçtür. Kurs sayısı arttıkça boş kombinasyonlar oluşur: "İleri Düzey Pazarlama" sayfasında iki kurs varken "Başlangıç Programlama" yüz kursu barındırıyor olabilir; bu dengesizlik hem kullanıcıyı hem içerik ekibini yorar ve boş sayfaların temizlenmesi sürekli gündem maddesi haline gelir.
Sağlıklı bir orta yol şudur: ana kategori yapısı konuya göre kurulur, seviye ise kategori içinde filtre veya etiket olarak kalır. Kategori sayfası konu odaklı içerik sunarken filtre mekanizması seviyeye göre daraltma yapar. Bu yaklaşım kategori sayfası sayısını yönetmek açısından da daha temiz bir çerçeve sunar; çünkü kombinatoryal patlama olmaz ve her kategori sayfasında yeterli içerik toplanır.
Öğretmen profili bağımsız bir varlık olarak nasıl tasarlanır?
Öğretmen profili bağımsız bir varlıktır. /egitmenler/ali-yilmaz/ gibi bir URL, o öğretmeni hiçbir konuya veya seviyeye kilitlemez; profil sayfası öğretmenin tüm kurslarını listeler ve her kurs kendi URL'sine bağlar. Öğretmen başka bir konuda kurs açtığında profil sayfası güncellenir, URL değişmez.
Bununla birlikte bazı platformlar öğretmeni kategoriye de bağlamak ister. Bunu yapmanın temiz yolu, kategori sayfasında öğretmeni listelemek ve profil sayfasında da ilgili kategorileri göstermektir; ama her iki yön de referans bağlantısı olarak çalışır, hiyerarşik bağımlılık değil. Öğretmen bir kategoriden çıkarılırsa yalnızca o referans kaldırılır, profil sayfası veya kurs URL'leri etkilenmez.
Öğretmen içeriğinin üretkenliği, platforma göre farklılaşır. Kurumsal içerik üreten platform, öğretmen sayfasını daha az öne çıkarabilir; öğretmene dayalı marka değeri olan platformlarda ise öğretmen profili kategoriden daha fazla trafik alabilir. Hangisinin ön planda olduğunu önceden kestirmek zordur. Bu belirsizliği yönetmenin yolu, her iki varlığa da iyi bir URL ve yapı vermek; birini diğerine feda etmemektir.
Kurs sayfasının URL yapısı mimarinin tamamını etkiler
Kurs URL'si için üç yaygın seçenek vardır: kategori altında (/kategoriler/programlama/python-temelleri/), öğretmen altında (/egitmenler/ali-yilmaz/python-temelleri/) veya düz kurs kökünde (/kurslar/python-temelleri/). İlk iki seçenek başta anlamlı görünür ama zamanla sorun çıkarır.
Bir kurs kategorisini değiştirirse, öğretmeni değişirse veya çok kategoriye girecek biçimde genişlerse URL ya güncellenmek zorunda kalır ya da anlam kayması yaşar. Düz kurs kökü bu esnekliği sağlar. /kurslar/python-temelleri/ URL'si kursu ne kategoriye ne öğretmene bağlar; ilişkiler sayfa içeriğinde ve iç bağlantılarla kurulur.
Kısa ve düz URL'nin dezavantajı, URL'nin kendisinin bağlam taşımamasıdır. Bu dezavantaj sayfa başlığı, breadcrumb ve iç linkleme ile telafi edilir. Ayrıca kısa URL'ler paylaşımda ve hatırlamada daha işlevseldir. SaaS sitelerinde bilgi mimarisi planlanırken de benzer bir gerilim vardır: URL derinliği ile içerik esnekliği arasındaki denge her zaman derinlik lehine çözülmez.
Arama ve filtreleme navigasyon yükünü azaltır ama mimariyi değiştirmez
Büyük platformlarda kullanıcılar kategori hiyerarşisini adım adım gezmez; arama çubuğuna gider ya da filtreyi kullanır. Bu gözlem bazen "o zaman kategori yapısı önemli değil" yorumuna yol açar. Yanlış bir sonuçtur.
Arama ve filtreleme ara yüz sorunudur; mimari sorun değil. Filtrenin doğru çalışması için kursların kategoriye, seviyeye ve öğretmene doğru şekilde etiketlenmiş olması gerekir. Etiketler bozuk ya da tutarsızsa filtreleme de bozuk çalışır. Mimari tutarlılık, filtrenin beslendiği veriyi sağlar.
Bunun dışında filtrelenmiş sonuç sayfaları ile kategori sayfaları arasında bir sınır çizmek gerekir. /kategoriler/programlama/?seviye=ileri gibi bir URL, kalıcı bir sayfa mı yoksa geçici bir filtre durumu mu? Bu ayrım hem tarama botları hem kullanıcı deneyimi açısından önemlidir. Kalıcı sayfa olmasını istediğiniz kombinasyonlar için ayrı bir URL ve içerik stratejisi kurulur; geri kalanlar filtre parametresi olarak kalır ve dizine alınmaz. İçerik büyüdükçe navigasyonun sade kalması bu ayrımı net tutmakla doğrudan bağlantılıdır.
Platform büyüdükçe hiyerarşiyi korumak ekip kararı gerektirir
Mimari sorunların büyük kısmı teknik değil, organizasyoneldir. Yeni bir öğretmen geldiğinde kategori dışında bir kurs açmak isteyebilir. İçerik ekibi yeni bir konu için aceleyle kategori oluşturabilir. Pazarlama bir kampanya için geçici bir "kurs koleksiyonu" sayfası talep edebilir. Her karar tek başına küçük görünür; birikince mimari tanınmaz hale gelir.
Bu birikim çok yazarlı içerik sitelerinde de benzer biçimde görülür: her katılımcı iyi niyetle hareket eder ama ortak kural olmadığında yapı parçalanır. Eğitim platformlarında çözüm, kurs ekleme sürecini kısıtlamak değil, kategori ve etiket kararlarını açık bir kılavuzla belgelemektir. "Bu kurs hangi kategoriye girer?" sorusunun cevabı kılavuzda varsa içerik ekibi tutarlı davranabilir.
Geçici koleksiyonlar ayrı bir yapı gerektirir. Kampanya sayfaları, öğretmen seçkileri veya sezonluk içerikler için kalıcı kategori açmak yapıyı şişirir. Bu içerikler /koleksiyonlar/ veya /secilenler/ gibi ayrı bir kök altında toplanır ve birincil hiyerarşiden bağımsız tutulur. Kampanya bittiğinde sayfa kaldırılır ya da arşivlenir; kalıcı kategoriler bozulmaz.
İç linkleme üç varlık arasındaki ilişkiyi görünür kılar
Kurs, kategori ve öğretmen ayrı varlıklar olduğunda aralarındaki ilişki iç bağlantılarla kurulur. Kurs sayfasında hangi kategoriye ait olduğu gösterilir, öğretmen profili bağlanır; kategori sayfasında ilgili kurslar ve öğretmenler listelenir; öğretmen profilinde tüm kurslar ve ilgili kategoriler gösterilir. Bu çapraz bağlantılar hem kullanıcıya yol gösterir hem de tarama botlarının üç varlık tipini de keşfetmesini sağlar.
İç linklemenin aşırıya kaçması da sorun yaratır. Her kurstan tüm kategorilere, her kategoriden tüm öğretmenlere bağlantı vermek sayfayı gürültülü hale getirir. Bağlantı seçimi kullanıcı amacına göre yapılır: bu kursu alanlar başka hangi kurslara bakar, bu öğretmeni inceleyen kullanıcı ne arar? Yanıtı bağlantı listesini oluşturur, listenin tamamı değil.
Headless CMS ile site mimarisi kurulurken bu üç varlık tipi için ayrı içerik tipleri tanımlamak, ilişkileri de CMS düzeyinde modellemek işi önemli ölçüde kolaylaştırır. Varlıklar ayrı tutulduğunda CMS'in ilişki alanları yapıya hizmet eder; aksi durumda ilişkiler serbest metin ya da manuel etiket olarak kalır ve tutarlılık bozulur.
Ne zaman basit tutmak, ne zaman tam hiyerarşi kurmak gerekir?
Her platform için üç ayrı kök ve tam bağımsız varlık modeli gerekmez. Tek öğretmenli bir platform için öğretmen varlığı anlamsızdır; kurs sayfaları yeterlidir. Beş kategorisi olan küçük bir platform için kategori sayfasını öğretmen profiliyle çaprazlamak gerekmeyebilir; basit bir liste yeterince çalışır.
Tam hiyerarşi şu üç koşulda işe yarar: öğretmen sayısı ikinin üzerinde ve büyümeye devam ediyorsa, aynı konu birden fazla öğretmen tarafından farklı açılardan işleniyorsa ve kategoriler zamanla değişip genişleyecekse. Bu koşulların biri bile varsa baştan bağımsız varlık modelini kurmak, sonradan yeniden yapılandırma maliyetinden daha az efor gerektirir.
Ters etki yaratan durum ise küçük, sabit platformda aşırı mühendislikli mimari kurmaktır. On kurs ve iki öğretmen için tam varlık modeli, bakım yükü getirir ve içerik ekibini kafa karıştırır. Mimari kararların ölçeğe uygun olması, hem teknik hem organizasyonel sürdürülebilirlik için gereklidir.
Eğitim platformlarında mimari sorunlar, kural genellikle büyüme döneminde gün yüzüne çıkar. Kullanıcılar yavaş yavaş biriken tutarsızlıkları platform büyüdükçe daha net hisseder: bir öğretmeni iki farklı URL'de buluyor, bir kurs iki kategoride aynı anda görünüyor, filtre sonuçları beklenenle uyuşmuyor. Bu belirtilerin hepsinin kökü, başlangıçta varlıklar arası sınırın bulanık bırakılmasında yatar.
İyi kurulmuş bir eğitim platformu mimarisi sonunda teknik bir başarı değil, içerik kararlarının tutarlılığının göstergesi olur. Kurslar, kategoriler ve öğretmenler kendi yapılarını koruyarak büyüdüğünde platform yeni öğretmeni, yeni konuyu ve yeni kurs formatını mevcut mimariyi bozmadan karşılayabilir. Bu esneklik baştan kurulur; sonradan eklenmesi çok daha pahalıya gelir.