diff --git a/public/urap-logo.svg b/public/urap-logo.svg new file mode 100644 index 0000000..3c9aa5d --- /dev/null +++ b/public/urap-logo.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/scripts/yok-istatistik-uret.py b/scripts/yok-istatistik-uret.py new file mode 100644 index 0000000..209bae7 --- /dev/null +++ b/scripts/yok-istatistik-uret.py @@ -0,0 +1,142 @@ +"""YÖK İstatistik Excel'lerinden src/lib/yok-istatistik.ts sabitini üretir. + +Kullanım (yılda bir, YÖK İstatistik Mart'ta yayımlayınca): + python3 scripts/yok-istatistik-uret.py 2025-2026 + +Girdi: data/kaynak/yok-istatistik-{ogrenci,ogretim-elemani}-sayilari-.xls +(istatistik.yok.gov.tr'den tarayıcıyla indirilir, API yok). Bağımlılık: xlrd. + +Kurallar: +- Öğrenci = örgün öğrenci (BİRİNCİ Ö. + İKİNCİ Ö.), tüm düzeyler. UZAKTAN Ö. + ve AÇIK Ö. dışarıda: açıköğretimli üç büyük üniversitede oranı anlamsız + kılar ve kampüste okuyan öğrenciyi anlatmaz. +- Öğretim üyesi = Profesör + Doçent + Doktor Öğretim Üyesi (YÖK tanımı). +- Anahtar: /universite/[slug] sayfa slug'ı; yalnız yokatlas.db'de sayfası + olan üniversiteler yazılır, eşleşmeyenler ekrana basılır. +""" + +import sqlite3 +import sys +import unicodedata +import re +from pathlib import Path + +import xlrd + +KOK = Path(__file__).resolve().parent.parent +DONEM = sys.argv[1] if len(sys.argv) > 1 else "2025-2026" + + +def slugify(s: str) -> str: + # src/lib/slug.ts turkishSlugify ile aynı kural. + s = s.replace("I", "ı").replace("İ", "i").lower() + for a, b in [("ı", "i"), ("ş", "s"), ("ğ", "g"), ("ü", "u"), ("ö", "o"), + ("ç", "c"), ("â", "a"), ("î", "i"), ("û", "u")]: + s = s.replace(a, b) + s = unicodedata.normalize("NFKD", s) + s = re.sub(r"[̀-ͯ]", "", s) + s = re.sub(r"[^a-z0-9]+", "-", s) + return s.strip("-") + + +def sayfa_slug(ad: str) -> str: + return slugify(re.sub(r"\s*\([^)]*\)\s*$", "", ad).strip()) + + +def tamsayi(v) -> int: + return int(float(v)) if v not in ("", None) else 0 + + +def sayfa(ad: str): + return xlrd.open_workbook( + KOK / "data" / "kaynak" / f"yok-istatistik-{ad}-sayilari-{DONEM}.xls" + ).sheet_by_index(0) + + +# Öğrenci: sütun 1 ad, 4 öğrenim türü, 19 genel toplam (T). +ogrenci: dict[str, int] = {} +s = sayfa("ogrenci") +for r in range(4, s.nrows): + v = s.row_values(r) + ad, tur = str(v[1]).strip(), str(v[4]).strip() + if not ad or ad == "TOPLAM": + continue + if tur in ("BİRİNCİ Ö.", "İKİNCİ Ö."): + k = sayfa_slug(ad) + ogrenci[k] = ogrenci.get(k, 0) + tamsayi(v[19]) + +# Akademisyen: T sütunları Prof 6, Doç 9, Dr. Öğr. Üyesi 12, genel toplam 21. +akademik: dict[str, tuple[int, int]] = {} +s = sayfa("ogretim-elemani") +for r in range(4, s.nrows): + v = s.row_values(r) + ad = str(v[1]).strip() + if not ad or ad == "TOPLAM": + continue + uye = tamsayi(v[6]) + tamsayi(v[9]) + tamsayi(v[12]) + akademik[sayfa_slug(ad)] = (uye, tamsayi(v[21])) + +db = sqlite3.connect(KOK / "data" / "yokatlas.db") +sayfalar = {sayfa_slug(a) for (a,) in db.execute("SELECT DISTINCT universite FROM programs")} + +satirlar = [] +for k in sorted(sayfalar): + if k not in ogrenci or k not in akademik: + continue + uye, toplam = akademik[k] + if ogrenci[k] == 0 or uye == 0: + continue + satirlar.append(f' "{k}": {{ ogrenci: {ogrenci[k]}, ogretimUyesi: {uye}, akademisyen: {toplam} }},') + +oranlar = sorted(ogrenci[k] / akademik[k][0] for k in sayfalar + if ogrenci.get(k) and akademik.get(k, (0, 0))[0]) +medyan = round(oranlar[len(oranlar) // 2]) + +eksik = sorted(sayfalar - {l.split('"')[1] for l in satirlar}) +print(f"{len(satirlar)}/{len(sayfalar)} sayfa eşleşti. Eşleşmeyen {len(eksik)}:", file=sys.stderr) +for k in eksik: + print(" -", k, file=sys.stderr) +for k in sorted(set(ogrenci) - sayfalar): + print(" Excel'de var, sayfası yok:", k, file=sys.stderr) + +cikti = f'''// YÖK İstatistik {DONEM}: üniversite başına örgün öğrenci ve öğretim üyesi sayısı. +// +// ÜRETİLMİŞ DOSYA — elle düzenleme. Kaynak Excel'ler data/kaynak/ altında; +// yeniden üretmek için: python3 scripts/yok-istatistik-uret.py {DONEM} +// +// Öğrenci = örgün (birinci + ikinci öğretim), tüm düzeyler; uzaktan ve açık +// öğretim dahil değil. Öğretim üyesi = Prof. + Doç. + Dr. Öğr. Üyesi. +// Anahtar: /universite/[slug] sayfa slug'ı. Burada olmayan üniversitenin +// YÖK İstatistik satırı yok (KKTC/yurt dışı ya da öğrencisi/üyesi 0). + +export const YOK_ISTATISTIK_DONEM = "{DONEM}"; + +export const YOK_ISTATISTIK_KAYNAK_URL = "https://istatistik.yok.gov.tr/"; + +/** Sayfası olan üniversitelerde öğretim üyesi başına öğrencinin medyanı — kıyas çizgisi. */ +export const OGRENCI_BASINA_UYE_MEDYAN = {medyan}; + +export type UniIstatistik = {{ + /** Örgün öğrenci (ön lisans + lisans + yüksek lisans + doktora) */ + ogrenci: number; + /** Profesör + doçent + doktor öğretim üyesi */ + ogretimUyesi: number; + /** Tüm akademik personel (öğretim görevlisi ve araştırma görevlisi dahil) */ + akademisyen: number; +}}; + +export const YOK_ISTATISTIK: Record = {{ +{chr(10).join(satirlar)} +}}; + +/** Üniversite sayfa slug'ının YÖK İstatistik satırı; yoksa null. */ +export function uniIstatistikBul(slug: string): UniIstatistik | null {{ + return YOK_ISTATISTIK[slug] ?? null; +}} + +/** Öğretim üyesi başına örgün öğrenci, tam sayıya yuvarlanmış. */ +export function ogrenciBasinaUye(i: UniIstatistik): number {{ + return Math.round(i.ogrenci / i.ogretimUyesi); +}} +''' +(KOK / "src" / "lib" / "yok-istatistik.ts").write_text(cikti, encoding="utf-8") diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index 7864436..ce731ff 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -19,6 +19,11 @@ const staticEntries: MetadataRoute.Sitemap = [ priority: 0.8, changeFrequency: "weekly", }, + { + url: `${SITE_URL}/universite-siralamasi`, + priority: 0.7, + changeFrequency: "yearly", + }, { url: `${SITE_URL}/paket`, priority: 0.7, changeFrequency: "monthly" }, { url: `${SITE_URL}/meraklisina`, priority: 0.6, changeFrequency: "monthly" }, { url: `${SITE_URL}/iletisim`, priority: 0.3, changeFrequency: "yearly" }, diff --git a/src/app/universite-siralamasi/page.tsx b/src/app/universite-siralamasi/page.tsx new file mode 100644 index 0000000..4b5b6b7 --- /dev/null +++ b/src/app/universite-siralamasi/page.tsx @@ -0,0 +1,34 @@ +import type { Metadata } from "next"; +import { JsonLd, breadcrumbJsonLd, sayfaMetadata } from "@/lib/seo"; +import { SiteFooter } from "@/components/site-footer"; +import { TurkiyeSiralamasi } from "@/features/katalog/components/turkiye-siralamasi"; +import { URAP_DONEM, URAP_TOPLAM } from "@/lib/urap-siralama"; + +const BASLIK = `Türkiye Üniversite Sıralaması ${URAP_DONEM}`; + +export const metadata: Metadata = sayfaMetadata({ + title: BASLIK, + description: `Türkiye'deki ${URAP_TOPLAM} üniversitenin URAP ${URAP_DONEM} akademik performans sıralaması — sıra, puan ve üniversite sayfaları.`, + path: "/universite-siralamasi", +}); + +export default function UniversiteSiralamasiPage() { + return ( + <> +
+ +

+ {BASLIK} +

+ +
+ + + ); +} diff --git a/src/features/katalog/components/turkiye-siralamasi.tsx b/src/features/katalog/components/turkiye-siralamasi.tsx new file mode 100644 index 0000000..be25374 --- /dev/null +++ b/src/features/katalog/components/turkiye-siralamasi.tsx @@ -0,0 +1,123 @@ +import Link from "next/link"; +import { getAllUniversiteler } from "../katalog-queries"; +import { trBaslikDuzeni } from "@/lib/slug"; +import { UNITUR_ETIKET } from "@/lib/unitur"; +import { UniLogo } from "@/components/uni-logo"; +import { PagePixelDivider } from "@/components/pixel-decor"; +import { UrapLogo } from "./urap-logo"; +import { + URAP_DONEM, + URAP_KAYNAK_URL, + URAP_SIRA, + URAP_TOPLAM, +} from "@/lib/urap-siralama"; + +const sayi = (n: number) => n.toLocaleString("tr-TR"); +const puanYaz = (n: number) => + n.toLocaleString("tr-TR", { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }); + +/** + * URAP atfı: izin "urapcenter.org adresine aktif bağlantı" şartına bağlı — + * gerçek , yeni sekme, rel="noopener", nofollow YOK. Sayfanın başında + * ve sonunda tekrar edilir, liste uzun olduğundan sıra sayısıyla aynı ekranda + * kalsın. + */ +function UrapAtfi() { + return ( + + urapcenter.org + + ); +} + +export function TurkiyeSiralamasi() { + const ozetler = new Map(getAllUniversiteler().map((u) => [u.slug, u])); + const satirlar = Object.entries(URAP_SIRA) + .map(([slug, u]) => ({ slug, ...u, ozet: ozetler.get(slug) })) + .sort((a, b) => a.sira - b.sira); + const enYuksek = satirlar[0]?.puan ?? 1; + + return ( + <> +
+

+ Türkiye'deki {sayi(URAP_TOPLAM)} üniversitenin URAP (University + Ranking by Academic Performance) {URAP_DONEM} genel sıralaması. URAP, + üniversiteleri yayın, atıf, proje ve doktora gibi{" "} + akademik yayın ve araştırma performansı{" "} + göstergeleriyle puanlar; eğitim kalitesini ya da mezunların iş bulma + oranını ölçmez. Bölüm seçerken tek başına ölçüt değil, taban + sıralamayla birlikte bakılacak bir bilgi. Kaynak: . +

+ +
+ + + +
    + {satirlar.map((u) => { + const ad = u.ozet?.ad ?? trBaslikDuzeni(u.slug.replace(/-/g, " ")); + const tur = u.ozet?.unitur ? UNITUR_ETIKET[u.ozet.unitur]?.cip : null; + const alt = [u.ozet?.il ? trBaslikDuzeni(u.ozet.il) : null, tur] + .filter(Boolean) + .join(" · "); + return ( +
  1. + + + {u.sira} + + + + + {ad} + + {alt ? ( + {alt} + ) : null} + + + + + + + {puanYaz(u.puan)} + + + +
  2. + ); + })} +
+ +
+ +

+ Sağdaki sayı URAP toplam puanıdır. Listede olmayan üniversite + sıralamaya girmemiştir — KKTC/yurt dışı kurumlar ve araştırma çıktısı + henüz oluşmamış yeni üniversiteler listede yer almaz; bu, + "kötü" demek değildir. URAP Türkiye Sıralaması {URAP_DONEM}, + URAP Araştırma Laboratuvarı'nın izniyle yayımlanmıştır. Kaynak:{" "} + . +

+
+ + ); +} diff --git a/src/features/katalog/components/urap-logo.tsx b/src/features/katalog/components/urap-logo.tsx new file mode 100644 index 0000000..625fafe --- /dev/null +++ b/src/features/katalog/components/urap-logo.tsx @@ -0,0 +1,28 @@ +import Image from "next/image"; +import { URAP_KAYNAK_URL } from "@/lib/urap-siralama"; + +/** + * URAP logosu, urapcenter.org'a aktif bağlantı olarak. Atıf şartı gereği + * gerçek , yeni sekme, rel="noopener", nofollow YOK. Logo resmî + * PNG'den (urapcenter.org/img/urap-logo/logo.png) vektörleştirildi — + * `public/urap-logo.svg`, oran 819×261. + */ +export function UrapLogo({ className = "h-8" }: { className?: string }) { + return ( + + URAP — University Ranking by Academic Performance + + ); +} diff --git a/src/lib/katalog.ts b/src/lib/katalog.ts index fee4430..7669d89 100644 --- a/src/lib/katalog.ts +++ b/src/lib/katalog.ts @@ -11,6 +11,7 @@ import { kategoriBul, type Kategori } from "./kategoriler"; import { uniAdiNormalize } from "./harita"; import { bolumBazAdi, turkishSlugify, trBaslikDuzeni } from "./slug"; import { urapSirasiBul, type UrapSira } from "./urap-siralama"; +import { uniIstatistikBul, type UniIstatistik } from "./yok-istatistik"; /** * Programatik SEO sayfalarının veri katmanı (/bolum, /universite, hub'lar). @@ -230,6 +231,8 @@ export type UniDetay = UniOzet & { * Gösterildiği her yüzeyde URAP_KAYNAK_URL'ye aktif atıf zorunludur. */ urap: UrapSira | null; + /** YÖK İstatistik örgün öğrenci / öğretim üyesi sayısı; KKTC ve yurt dışında null. */ + istatistik: UniIstatistik | null; fakulteler: { fakulte: string; programlar: Program[] }[]; stats: { minSira: number | null; @@ -400,6 +403,7 @@ export function getUniversiteBySlug(slug: string): UniDetay | null { return { ...ozet, urap: urapSirasiBul(slug), + istatistik: uniIstatistikBul(slug), fakulteler: [...gruplar.entries()] .map(([fakulte, programlar]) => ({ fakulte, programlar })) .sort((a, b) => a.fakulte.localeCompare(b.fakulte, "tr-TR")), diff --git a/src/lib/yok-istatistik.ts b/src/lib/yok-istatistik.ts new file mode 100644 index 0000000..fef2c36 --- /dev/null +++ b/src/lib/yok-istatistik.ts @@ -0,0 +1,242 @@ +// YÖK İstatistik 2025-2026: üniversite başına örgün öğrenci ve öğretim üyesi sayısı. +// +// ÜRETİLMİŞ DOSYA — elle düzenleme. Kaynak Excel'ler data/kaynak/ altında; +// yeniden üretmek için: python3 scripts/yok-istatistik-uret.py 2025-2026 +// +// Öğrenci = örgün (birinci + ikinci öğretim), tüm düzeyler; uzaktan ve açık +// öğretim dahil değil. Öğretim üyesi = Prof. + Doç. + Dr. Öğr. Üyesi. +// Anahtar: /universite/[slug] sayfa slug'ı. Burada olmayan üniversitenin +// YÖK İstatistik satırı yok (KKTC/yurt dışı ya da öğrencisi/üyesi 0). + +export const YOK_ISTATISTIK_DONEM = "2025-2026"; + +export const YOK_ISTATISTIK_KAYNAK_URL = "https://istatistik.yok.gov.tr/"; + +/** Sayfası olan üniversitelerde öğretim üyesi başına öğrencinin medyanı — kıyas çizgisi. */ +export const OGRENCI_BASINA_UYE_MEDYAN = 35; + +export type UniIstatistik = { + /** Örgün öğrenci (ön lisans + lisans + yüksek lisans + doktora) */ + ogrenci: number; + /** Profesör + doçent + doktor öğretim üyesi */ + ogretimUyesi: number; + /** Tüm akademik personel (öğretim görevlisi ve araştırma görevlisi dahil) */ + akademisyen: number; +}; + +export const YOK_ISTATISTIK: Record = { + "abdullah-gul-universitesi": { ogrenci: 3936, ogretimUyesi: 107, akademisyen: 300 }, + "acibadem-mehmet-ali-aydinlar-universitesi": { ogrenci: 6279, ogretimUyesi: 375, akademisyen: 646 }, + "adana-alparslan-turkes-bilim-ve-teknoloji-universitesi": { ogrenci: 6220, ogretimUyesi: 236, akademisyen: 446 }, + "adiyaman-universitesi": { ogrenci: 16659, ogretimUyesi: 548, akademisyen: 862 }, + "afyon-kocatepe-universitesi": { ogrenci: 29711, ogretimUyesi: 699, akademisyen: 1109 }, + "afyonkarahisar-saglik-bilimleri-universitesi": { ogrenci: 7072, ogretimUyesi: 325, akademisyen: 620 }, + "agri-ibrahim-cecen-universitesi": { ogrenci: 15239, ogretimUyesi: 390, akademisyen: 574 }, + "akdeniz-universitesi": { ogrenci: 55992, ogretimUyesi: 1339, akademisyen: 2658 }, + "aksaray-universitesi": { ogrenci: 18151, ogretimUyesi: 626, akademisyen: 963 }, + "alanya-alaaddin-keykubat-universitesi": { ogrenci: 15322, ogretimUyesi: 410, akademisyen: 696 }, + "alanya-universitesi": { ogrenci: 1207, ogretimUyesi: 51, akademisyen: 100 }, + "altinbas-universitesi": { ogrenci: 12055, ogretimUyesi: 227, akademisyen: 334 }, + "amasya-universitesi": { ogrenci: 16656, ogretimUyesi: 543, akademisyen: 748 }, + "anadolu-universitesi": { ogrenci: 25934, ogretimUyesi: 900, akademisyen: 1470 }, + "ankara-bilim-universitesi": { ogrenci: 3626, ogretimUyesi: 72, akademisyen: 134 }, + "ankara-haci-bayram-veli-universitesi": { ogrenci: 27559, ogretimUyesi: 867, akademisyen: 1221 }, + "ankara-medipol-universitesi": { ogrenci: 14035, ogretimUyesi: 270, akademisyen: 458 }, + "ankara-muzik-ve-guzel-sanatlar-universitesi": { ogrenci: 1457, ogretimUyesi: 86, akademisyen: 136 }, + "ankara-sosyal-bilimler-universitesi": { ogrenci: 5879, ogretimUyesi: 274, akademisyen: 477 }, + "ankara-universitesi": { ogrenci: 56128, ogretimUyesi: 2225, akademisyen: 3702 }, + "ankara-yildirim-beyazit-universitesi": { ogrenci: 26177, ogretimUyesi: 1019, akademisyen: 1568 }, + "antalya-belek-universitesi": { ogrenci: 2553, ogretimUyesi: 44, akademisyen: 94 }, + "antalya-bilim-universitesi": { ogrenci: 8597, ogretimUyesi: 180, akademisyen: 315 }, + "ardahan-universitesi": { ogrenci: 7355, ogretimUyesi: 236, akademisyen: 380 }, + "artvin-coruh-universitesi": { ogrenci: 12358, ogretimUyesi: 332, akademisyen: 566 }, + "atasehir-adiguzel-meslek-yuksekokulu": { ogrenci: 1476, ogretimUyesi: 2, akademisyen: 32 }, + "ataturk-universitesi": { ogrenci: 58279, ogretimUyesi: 1800, akademisyen: 2758 }, + "atilim-universitesi": { ogrenci: 9885, ogretimUyesi: 331, akademisyen: 594 }, + "avrasya-universitesi": { ogrenci: 7495, ogretimUyesi: 119, akademisyen: 238 }, + "aydin-adnan-menderes-universitesi": { ogrenci: 43686, ogretimUyesi: 1232, akademisyen: 1924 }, + "bahcesehir-universitesi": { ogrenci: 21181, ogretimUyesi: 560, akademisyen: 838 }, + "balikesir-universitesi": { ogrenci: 28673, ogretimUyesi: 890, akademisyen: 1313 }, + "bandirma-onyedi-eylul-universitesi": { ogrenci: 18949, ogretimUyesi: 456, akademisyen: 653 }, + "bartin-universitesi": { ogrenci: 15615, ogretimUyesi: 452, akademisyen: 723 }, + "baskent-universitesi": { ogrenci: 17784, ogretimUyesi: 976, akademisyen: 1920 }, + "batman-universitesi": { ogrenci: 14701, ogretimUyesi: 360, akademisyen: 584 }, + "bayburt-universitesi": { ogrenci: 13883, ogretimUyesi: 314, akademisyen: 499 }, + "beykoz-universitesi": { ogrenci: 5251, ogretimUyesi: 94, akademisyen: 154 }, + "bezm-i-alem-vakif-universitesi": { ogrenci: 4076, ogretimUyesi: 231, akademisyen: 605 }, + "bilecik-seyh-edebali-universitesi": { ogrenci: 19612, ogretimUyesi: 495, akademisyen: 824 }, + "bingol-universitesi": { ogrenci: 18558, ogretimUyesi: 494, akademisyen: 744 }, + "biruni-universitesi": { ogrenci: 15154, ogretimUyesi: 347, akademisyen: 449 }, + "bitlis-eren-universitesi": { ogrenci: 14635, ogretimUyesi: 342, akademisyen: 549 }, + "bogazici-universitesi": { ogrenci: 13839, ogretimUyesi: 503, akademisyen: 1031 }, + "bolu-abant-izzet-baysal-universitesi": { ogrenci: 30443, ogretimUyesi: 965, akademisyen: 1491 }, + "burdur-mehmet-akif-ersoy-universitesi": { ogrenci: 34361, ogretimUyesi: 799, akademisyen: 1209 }, + "bursa-teknik-universitesi": { ogrenci: 12346, ogretimUyesi: 350, akademisyen: 601 }, + "bursa-uludag-universitesi": { ogrenci: 58341, ogretimUyesi: 1368, akademisyen: 2331 }, + "cag-universitesi": { ogrenci: 3667, ogretimUyesi: 63, akademisyen: 127 }, + "canakkale-onsekiz-mart-universitesi": { ogrenci: 42341, ogretimUyesi: 1254, akademisyen: 2058 }, + "cankaya-universitesi": { ogrenci: 6401, ogretimUyesi: 148, akademisyen: 260 }, + "cankiri-karatekin-universitesi": { ogrenci: 17291, ogretimUyesi: 488, akademisyen: 740 }, + "cukurova-universitesi": { ogrenci: 44430, ogretimUyesi: 1187, akademisyen: 2116 }, + "demiroglu-bilim-universitesi": { ogrenci: 2633, ogretimUyesi: 179, akademisyen: 231 }, + "dicle-universitesi": { ogrenci: 42368, ogretimUyesi: 1011, akademisyen: 1641 }, + "dogus-universitesi": { ogrenci: 18442, ogretimUyesi: 217, akademisyen: 459 }, + "dokuz-eylul-universitesi": { ogrenci: 56833, ogretimUyesi: 1849, akademisyen: 2951 }, + "duzce-universitesi": { ogrenci: 28561, ogretimUyesi: 765, akademisyen: 1230 }, + "ege-universitesi": { ogrenci: 49852, ogretimUyesi: 1744, akademisyen: 2983 }, + "erciyes-universitesi": { ogrenci: 42735, ogretimUyesi: 1237, akademisyen: 2195 }, + "erzincan-binali-yildirim-universitesi": { ogrenci: 23617, ogretimUyesi: 764, akademisyen: 1070 }, + "erzurum-teknik-universitesi": { ogrenci: 5876, ogretimUyesi: 268, akademisyen: 389 }, + "eskisehir-osmangazi-universitesi": { ogrenci: 26667, ogretimUyesi: 1043, akademisyen: 1695 }, + "eskisehir-teknik-universitesi": { ogrenci: 13840, ogretimUyesi: 467, akademisyen: 735 }, + "fatih-sultan-mehmet-vakif-universitesi": { ogrenci: 7676, ogretimUyesi: 169, akademisyen: 328 }, + "fenerbahce-universitesi": { ogrenci: 9741, ogretimUyesi: 195, akademisyen: 311 }, + "firat-universitesi": { ogrenci: 39181, ogretimUyesi: 1167, akademisyen: 1924 }, + "galatasaray-universitesi": { ogrenci: 4398, ogretimUyesi: 162, akademisyen: 310 }, + "gazi-universitesi": { ogrenci: 38023, ogretimUyesi: 1877, akademisyen: 3115 }, + "gaziantep-islam-bilim-ve-teknoloji-universitesi": { ogrenci: 5934, ogretimUyesi: 167, akademisyen: 248 }, + "gaziantep-universitesi": { ogrenci: 45986, ogretimUyesi: 906, akademisyen: 1689 }, + "gebze-teknik-universitesi": { ogrenci: 10152, ogretimUyesi: 354, akademisyen: 820 }, + "giresun-universitesi": { ogrenci: 24556, ogretimUyesi: 820, akademisyen: 1165 }, + "gumushane-universitesi": { ogrenci: 19558, ogretimUyesi: 425, akademisyen: 664 }, + "hacettepe-universitesi": { ogrenci: 45592, ogretimUyesi: 2015, akademisyen: 3536 }, + "hakkari-universitesi": { ogrenci: 5255, ogretimUyesi: 216, akademisyen: 332 }, + "halic-universitesi": { ogrenci: 15757, ogretimUyesi: 256, akademisyen: 470 }, + "harran-universitesi": { ogrenci: 28476, ogretimUyesi: 740, akademisyen: 1249 }, + "hasan-kalyoncu-universitesi": { ogrenci: 7697, ogretimUyesi: 206, akademisyen: 311 }, + "hatay-mustafa-kemal-universitesi": { ogrenci: 18471, ogretimUyesi: 685, akademisyen: 1146 }, + "hitit-universitesi": { ogrenci: 18433, ogretimUyesi: 492, akademisyen: 821 }, + "ibn-haldun-universitesi": { ogrenci: 1877, ogretimUyesi: 110, akademisyen: 171 }, + "igdir-universitesi": { ogrenci: 13947, ogretimUyesi: 314, akademisyen: 491 }, + "ihsan-dogramaci-bilkent-universitesi": { ogrenci: 12244, ogretimUyesi: 367, akademisyen: 707 }, + "inonu-universitesi": { ogrenci: 30854, ogretimUyesi: 948, akademisyen: 1584 }, + "isik-universitesi": { ogrenci: 5999, ogretimUyesi: 108, akademisyen: 189 }, + "iskenderun-teknik-universitesi": { ogrenci: 13168, ogretimUyesi: 263, akademisyen: 388 }, + "isparta-uygulamali-bilimler-universitesi": { ogrenci: 22373, ogretimUyesi: 415, akademisyen: 739 }, + "istanbul-29-mayis-universitesi": { ogrenci: 5492, ogretimUyesi: 129, akademisyen: 187 }, + "istanbul-arel-universitesi": { ogrenci: 14076, ogretimUyesi: 276, akademisyen: 519 }, + "istanbul-atlas-universitesi": { ogrenci: 10704, ogretimUyesi: 376, akademisyen: 501 }, + "istanbul-aydin-universitesi": { ogrenci: 47200, ogretimUyesi: 777, akademisyen: 1200 }, + "istanbul-beykent-universitesi": { ogrenci: 26693, ogretimUyesi: 501, akademisyen: 824 }, + "istanbul-bilgi-universitesi": { ogrenci: 19216, ogretimUyesi: 310, akademisyen: 568 }, + "istanbul-esenyurt-universitesi": { ogrenci: 14673, ogretimUyesi: 150, akademisyen: 320 }, + "istanbul-galata-universitesi": { ogrenci: 4213, ogretimUyesi: 125, akademisyen: 192 }, + "istanbul-gedik-universitesi": { ogrenci: 10243, ogretimUyesi: 175, akademisyen: 306 }, + "istanbul-gelisim-universitesi": { ogrenci: 36730, ogretimUyesi: 472, akademisyen: 775 }, + "istanbul-kent-universitesi": { ogrenci: 15262, ogretimUyesi: 231, akademisyen: 405 }, + "istanbul-kultur-universitesi": { ogrenci: 13322, ogretimUyesi: 268, akademisyen: 459 }, + "istanbul-medeniyet-universitesi": { ogrenci: 15978, ogretimUyesi: 746, akademisyen: 1141 }, + "istanbul-medipol-universitesi": { ogrenci: 49066, ogretimUyesi: 975, akademisyen: 1647 }, + "istanbul-nisantasi-universitesi": { ogrenci: 42789, ogretimUyesi: 485, akademisyen: 783 }, + "istanbul-okan-universitesi": { ogrenci: 17022, ogretimUyesi: 560, akademisyen: 823 }, + "istanbul-rumeli-universitesi": { ogrenci: 10118, ogretimUyesi: 165, akademisyen: 257 }, + "istanbul-sabahattin-zaim-universitesi": { ogrenci: 8740, ogretimUyesi: 261, akademisyen: 392 }, + "istanbul-saglik-ve-teknoloji-universitesi": { ogrenci: 5136, ogretimUyesi: 350, akademisyen: 434 }, + "istanbul-sisli-meslek-yuksekokulu": { ogrenci: 10446, ogretimUyesi: 19, akademisyen: 80 }, + "istanbul-teknik-universitesi": { ogrenci: 33900, ogretimUyesi: 1253, akademisyen: 2524 }, + "istanbul-ticaret-universitesi": { ogrenci: 8384, ogretimUyesi: 167, akademisyen: 270 }, + "istanbul-topkapi-universitesi": { ogrenci: 24477, ogretimUyesi: 237, akademisyen: 424 }, + "istanbul-universitesi": { ogrenci: 52770, ogretimUyesi: 2125, akademisyen: 3379 }, + "istanbul-universitesi-cerrahpasa": { ogrenci: 29490, ogretimUyesi: 1318, akademisyen: 2053 }, + "istanbul-yeni-yuzyil-universitesi": { ogrenci: 20511, ogretimUyesi: 271, akademisyen: 424 }, + "istinye-universitesi": { ogrenci: 17697, ogretimUyesi: 525, akademisyen: 745 }, + "izmir-bakircay-universitesi": { ogrenci: 8576, ogretimUyesi: 340, akademisyen: 502 }, + "izmir-demokrasi-universitesi": { ogrenci: 11641, ogretimUyesi: 321, akademisyen: 450 }, + "izmir-ekonomi-universitesi": { ogrenci: 11623, ogretimUyesi: 356, akademisyen: 626 }, + "izmir-katip-celebi-universitesi": { ogrenci: 19148, ogretimUyesi: 778, akademisyen: 1215 }, + "izmir-konak-meslek-yuksekokulu": { ogrenci: 3816, ogretimUyesi: 28, akademisyen: 116 }, + "izmir-tinaztepe-universitesi": { ogrenci: 4685, ogretimUyesi: 199, akademisyen: 232 }, + "izmir-yuksek-teknoloji-enstitusu": { ogrenci: 7109, ogretimUyesi: 234, akademisyen: 685 }, + "kadir-has-universitesi": { ogrenci: 5237, ogretimUyesi: 163, akademisyen: 257 }, + "kafkas-universitesi": { ogrenci: 18892, ogretimUyesi: 712, akademisyen: 989 }, + "kahramanmaras-istiklal-universitesi": { ogrenci: 4080, ogretimUyesi: 104, akademisyen: 186 }, + "kahramanmaras-sutcu-imam-universitesi": { ogrenci: 30728, ogretimUyesi: 867, akademisyen: 1335 }, + "kapadokya-universitesi": { ogrenci: 10946, ogretimUyesi: 149, akademisyen: 276 }, + "karabuk-universitesi": { ogrenci: 37533, ogretimUyesi: 808, akademisyen: 1179 }, + "karadeniz-teknik-universitesi": { ogrenci: 28957, ogretimUyesi: 1198, akademisyen: 2144 }, + "karamanoglu-mehmetbey-universitesi": { ogrenci: 19098, ogretimUyesi: 641, akademisyen: 908 }, + "kastamonu-universitesi": { ogrenci: 25308, ogretimUyesi: 639, akademisyen: 980 }, + "kayseri-universitesi": { ogrenci: 14389, ogretimUyesi: 174, akademisyen: 315 }, + "kilis-7-aralik-universitesi": { ogrenci: 13370, ogretimUyesi: 304, akademisyen: 478 }, + "kirikkale-universitesi": { ogrenci: 29779, ogretimUyesi: 775, akademisyen: 1209 }, + "kirklareli-universitesi": { ogrenci: 22377, ogretimUyesi: 560, akademisyen: 915 }, + "kirsehir-ahi-evran-universitesi": { ogrenci: 20182, ogretimUyesi: 670, akademisyen: 990 }, + "koc-universitesi": { ogrenci: 8596, ogretimUyesi: 432, akademisyen: 838 }, + "kocaeli-saglik-ve-teknoloji-universitesi": { ogrenci: 6271, ogretimUyesi: 115, akademisyen: 152 }, + "kocaeli-universitesi": { ogrenci: 53036, ogretimUyesi: 1191, akademisyen: 2174 }, + "konya-gida-ve-tarim-universitesi": { ogrenci: 1614, ogretimUyesi: 36, akademisyen: 57 }, + "konya-teknik-universitesi": { ogrenci: 10688, ogretimUyesi: 312, akademisyen: 521 }, + "kto-karatay-universitesi": { ogrenci: 9768, ogretimUyesi: 211, akademisyen: 341 }, + "kutahya-dumlupinar-universitesi": { ogrenci: 38491, ogretimUyesi: 652, akademisyen: 1007 }, + "kutahya-saglik-bilimleri-universitesi": { ogrenci: 6757, ogretimUyesi: 326, akademisyen: 521 }, + "lokman-hekim-universitesi": { ogrenci: 5137, ogretimUyesi: 241, akademisyen: 331 }, + "malatya-turgut-ozal-universitesi": { ogrenci: 12370, ogretimUyesi: 355, akademisyen: 510 }, + "maltepe-universitesi": { ogrenci: 6288, ogretimUyesi: 370, akademisyen: 577 }, + "manisa-celal-bayar-universitesi": { ogrenci: 42218, ogretimUyesi: 986, akademisyen: 1647 }, + "mardin-artuklu-universitesi": { ogrenci: 16705, ogretimUyesi: 456, akademisyen: 722 }, + "marmara-universitesi": { ogrenci: 56733, ogretimUyesi: 2168, akademisyen: 3410 }, + "mef-universitesi": { ogrenci: 3708, ogretimUyesi: 115, akademisyen: 181 }, + "mersin-universitesi": { ogrenci: 37444, ogretimUyesi: 914, akademisyen: 1749 }, + "mimar-sinan-guzel-sanatlar-universitesi": { ogrenci: 8956, ogretimUyesi: 457, akademisyen: 631 }, + "mudanya-universitesi": { ogrenci: 3040, ogretimUyesi: 98, akademisyen: 158 }, + "mugla-sitki-kocman-universitesi": { ogrenci: 39185, ogretimUyesi: 991, akademisyen: 1727 }, + "munzur-universitesi": { ogrenci: 9826, ogretimUyesi: 318, akademisyen: 511 }, + "mus-alparslan-universitesi": { ogrenci: 14993, ogretimUyesi: 418, akademisyen: 647 }, + "necmettin-erbakan-universitesi": { ogrenci: 36239, ogretimUyesi: 1164, akademisyen: 1954 }, + "nevsehir-haci-bektas-veli-universitesi": { ogrenci: 21073, ogretimUyesi: 471, akademisyen: 822 }, + "nigde-omer-halisdemir-universitesi": { ogrenci: 26201, ogretimUyesi: 746, akademisyen: 1149 }, + "nuh-naci-yazgan-universitesi": { ogrenci: 2902, ogretimUyesi: 98, akademisyen: 162 }, + "ondokuz-mayis-universitesi": { ogrenci: 44852, ogretimUyesi: 1253, akademisyen: 2305 }, + "ordu-universitesi": { ogrenci: 17767, ogretimUyesi: 598, akademisyen: 973 }, + "orta-dogu-teknik-universitesi": { ogrenci: 30055, ogretimUyesi: 757, akademisyen: 2058 }, + "osmaniye-korkut-ata-universitesi": { ogrenci: 16460, ogretimUyesi: 365, akademisyen: 609 }, + "ostim-teknik-universitesi": { ogrenci: 8469, ogretimUyesi: 148, akademisyen: 257 }, + "ozyegin-universitesi": { ogrenci: 8369, ogretimUyesi: 255, akademisyen: 465 }, + "pamukkale-universitesi": { ogrenci: 43013, ogretimUyesi: 1238, akademisyen: 2113 }, + "piri-reis-universitesi": { ogrenci: 6741, ogretimUyesi: 121, akademisyen: 217 }, + "recep-tayyip-erdogan-universitesi": { ogrenci: 18693, ogretimUyesi: 703, akademisyen: 1252 }, + "sabanci-universitesi": { ogrenci: 5093, ogretimUyesi: 212, akademisyen: 363 }, + "saglik-bilimleri-universitesi": { ogrenci: 25070, ogretimUyesi: 3992, akademisyen: 4397 }, + "sakarya-universitesi": { ogrenci: 44027, ogretimUyesi: 1088, akademisyen: 1678 }, + "sakarya-uygulamali-bilimler-universitesi": { ogrenci: 29466, ogretimUyesi: 374, akademisyen: 698 }, + "samsun-universitesi": { ogrenci: 8287, ogretimUyesi: 363, akademisyen: 515 }, + "sanko-universitesi": { ogrenci: 1724, ogretimUyesi: 115, akademisyen: 167 }, + "selcuk-universitesi": { ogrenci: 61768, ogretimUyesi: 1486, akademisyen: 2594 }, + "siirt-universitesi": { ogrenci: 16165, ogretimUyesi: 482, akademisyen: 689 }, + "sinop-universitesi": { ogrenci: 13767, ogretimUyesi: 421, akademisyen: 626 }, + "sirnak-universitesi": { ogrenci: 6543, ogretimUyesi: 211, akademisyen: 330 }, + "sivas-bilim-ve-teknoloji-universitesi": { ogrenci: 940, ogretimUyesi: 81, akademisyen: 177 }, + "sivas-cumhuriyet-universitesi": { ogrenci: 46095, ogretimUyesi: 1184, akademisyen: 1921 }, + "suleyman-demirel-universitesi": { ogrenci: 33222, ogretimUyesi: 1097, akademisyen: 1847 }, + "tarsus-universitesi": { ogrenci: 7088, ogretimUyesi: 161, akademisyen: 285 }, + "ted-universitesi": { ogrenci: 5454, ogretimUyesi: 188, akademisyen: 331 }, + "tekirdag-namik-kemal-universitesi": { ogrenci: 28761, ogretimUyesi: 661, akademisyen: 1125 }, + "tobb-ekonomi-ve-teknoloji-universitesi": { ogrenci: 5597, ogretimUyesi: 242, akademisyen: 378 }, + "tokat-gaziosmanpasa-universitesi": { ogrenci: 32387, ogretimUyesi: 964, akademisyen: 1617 }, + "toros-universitesi": { ogrenci: 4319, ogretimUyesi: 96, akademisyen: 155 }, + "trabzon-universitesi": { ogrenci: 11965, ogretimUyesi: 432, akademisyen: 665 }, + "trakya-universitesi": { ogrenci: 35922, ogretimUyesi: 933, akademisyen: 1710 }, + "turk-alman-universitesi": { ogrenci: 4574, ogretimUyesi: 126, akademisyen: 364 }, + "turk-hava-kurumu-universitesi": { ogrenci: 4144, ogretimUyesi: 73, akademisyen: 162 }, + "ufuk-universitesi": { ogrenci: 4280, ogretimUyesi: 181, akademisyen: 284 }, + "usak-universitesi": { ogrenci: 22113, ogretimUyesi: 495, akademisyen: 930 }, + "uskudar-universitesi": { ogrenci: 23805, ogretimUyesi: 506, akademisyen: 702 }, + "van-yuzuncu-yil-universitesi": { ogrenci: 28497, ogretimUyesi: 1195, akademisyen: 1744 }, + "yalova-universitesi": { ogrenci: 16528, ogretimUyesi: 451, akademisyen: 758 }, + "yasar-universitesi": { ogrenci: 10081, ogretimUyesi: 226, akademisyen: 414 }, + "yeditepe-universitesi": { ogrenci: 19371, ogretimUyesi: 602, akademisyen: 1126 }, + "yildiz-teknik-universitesi": { ogrenci: 36618, ogretimUyesi: 1072, akademisyen: 1801 }, + "yozgat-bozok-universitesi": { ogrenci: 23118, ogretimUyesi: 656, akademisyen: 1028 }, + "yuksek-ihtisas-universitesi": { ogrenci: 3654, ogretimUyesi: 197, akademisyen: 272 }, + "zonguldak-bulent-ecevit-universitesi": { ogrenci: 29666, ogretimUyesi: 713, akademisyen: 1354 }, +}; + +/** Üniversite sayfa slug'ının YÖK İstatistik satırı; yoksa null. */ +export function uniIstatistikBul(slug: string): UniIstatistik | null { + return YOK_ISTATISTIK[slug] ?? null; +} + +/** Öğretim üyesi başına örgün öğrenci, tam sayıya yuvarlanmış. */ +export function ogrenciBasinaUye(i: UniIstatistik): number { + return Math.round(i.ogrenci / i.ogretimUyesi); +}