[{"data":1,"prerenderedAt":1522},["ShallowReactive",2],{"work-list-tr":3,"work-tr-request-workflow":1329},[4,629,1023],{"id":5,"title":6,"approach":7,"body":8,"client":595,"description":596,"draft":597,"extension":598,"href":599,"kind":600,"media":601,"mediaAlt":604,"mediaCaptions":607,"meta":610,"navigation":611,"order":612,"path":613,"problem":614,"result":615,"seo":616,"stem":617,"tech":618,"unreleased":597,"__hash__":628},"work_tr\u002Ftr\u002Fwork\u002Fatilim-university-web.md","Atılım Üniversitesi Web ve VectorCMS","Önce koru, sonra iyileştir: eski adresler ve içerik numaraları korunarak kuruma özel bir panel (VectorCMS) ve iki temalı yeni bir site (v2, v3) kuruldu; her adım testlerle ve provası yapılmış bir göçle ilerledi.",{"type":9,"value":10,"toc":572},"minimark",[11,16,20,23,28,57,61,79,83,115,119,123,129,149,160,164,172,182,186,190,201,205,210,236,240,250,265,269,273,281,285,299,303,307,315,319,322,404,408,535,539,542,546],[12,13,15],"h2",{"id":14},"baglam","Bağlam",[17,18,19],"p",{},"Üniversitenin 2018'den beri kullanılan web sitesi, fakülteden kulübe 313 birimin\niçeriğini taşıyordu: yaklaşık 4.500 sayfa, 6.000 haber, 9.700 duyuru, 4.600\netkinlik, 1.358 personel profili, 196 akademik program ve 7.400 ders. Yapı\nbüyüdükçe yönetimi de zorlaşmıştı.",[17,21,22],{},"Talep Kurumsal İletişim ve Tanıtım Direktörlüğü'nden geldi; sunucuyu,\nveritabanını ve erişimi DevOps kurdu. Bu iki sınırın arasında ürün ve arayüz\ntasarımı, ön yüz ve arka uç geliştirme, veri göçü, test, güvenlik düzeltmeleri\nve belgelendirme üzerinde çalıştım. Projenin kodunu yazan tek geliştirici\nbenim.",[24,25,27],"h3",{"id":26},"sorun","Sorun",[29,30,31,39,45,51],"ul",{},[32,33,34,38],"li",{},[35,36,37],"strong",{},"Dağınık içerik yönetimi."," Birimler aynı sistemi kullanıyordu ama yetkiler,\niçerik yapıları ve yayın alışkanlıkları farklıydı. Bir duyurunun ne zaman\neskidiği, bir sayfanın menüde nerede durduğu gibi kurallar kişiden kişiye\ndeğişiyordu.",[32,40,41,44],{},[35,42,43],{},"Eskiyen arayüz."," Mobil deneyim, erişilebilirlik ve sayfa hızı güncel\nbeklentilerin gerisindeydi.",[32,46,47,50],{},[35,48,49],{},"Bağlı sistemler."," Personel bilgileri kurumsal personel sisteminden, ders\nve program bilgileri AKTS veritabanından geliyordu; sitede tutarlı\ngörünmeleri gerekiyordu.",[32,52,53,56],{},[35,54,55],{},"Kaybedilmemesi gerekenler."," On binlerce içerik, yıllardır dışarıdan\nbağlantı verilmiş adresler, arama motoru görünürlüğü ve yaklaşık 50 GB dosya\narşivi.",[24,58,60],{"id":59},"hedefler","Hedefler",[62,63,64,67,70,73,76],"ol",{},[32,65,66],{},"Ziyaretçi için hızlı, mobil uyumlu, erişilebilir ve kurumsal kimliğe uygun\nbir site.",[32,68,69],{},"Editör için öğrenmesi kolay, hatayı affeden (geri al, sürüm geçmişi,\nkurtarma) ve yetkiye göre şekillenen bir panel.",[32,71,72],{},"Eski siteden içerik ve adres kaybı olmadan geçiş.",[32,74,75],{},"Bağımsız güvenlik denetimlerinden geçmiş, testlerle korunan bir kod tabanı.",[32,77,78],{},"Kurumun kendi başına sürdürebileceği belgelendirme.",[24,80,82],{"id":81},"ilkeler","İlkeler",[29,84,85,91,97,103,109],{},[32,86,87,90],{},[35,88,89],{},"Önce koru, sonra iyileştir."," Eski adresler, içerik numaraları ve veri\nyapısı korunarak taşındı; eski bağlantıların çalışmaya devam etmesi, her\nyeni özellikten önce gelen bir kabul kriteriydi.",[32,92,93,96],{},[35,94,95],{},"Tek kaynak."," İki veritabanını eşitlemek yerine, geçiş günü yeni sistemin\neski veritabanının üzerine yerinde kurulmasına karar verdim. Göç adımlarını\neski veritabanının bir kopyası üzerinde defalarca prova ettim.",[32,98,99,102],{},[35,100,101],{},"Kademeli ortamlar."," Her değişiklik geliştirme, iç test, kurum içi test ve\ncanlı ortam basamaklarından geçti; geri bildirim ilgili basamakta toplandı.",[32,104,105,108],{},[35,106,107],{},"Kullanıcıdan gelen kurallar."," Duyuruların süresi, etkinliklerde\nyaklaşan \u002F geçmiş ayrımı, kadro sıralaması gibi liste kuralları birimlerden\ngelen geri bildirimlerle, kurumsal hiyerarşi gözetilerek belirlendi.",[32,110,111,114],{},[35,112,113],{},"Doğrulanabilir kalite ve küçük adımlar."," Her iş kalemi testleriyle\nbirlikte teslim edildi; büyük planları test edilebilir parçalara böldüm, bir\nparça onaylanmadan sonrakine geçmedim.",[12,116,118],{"id":117},"yapilanlar","Yapılanlar",[24,120,122],{"id":121},"vectorcms-kuruma-ozel-panel","VectorCMS: kuruma özel panel",[124,125],"case-figure",{"caption":126,"src":127,"side":128},"Blok editörü: katman paneli ve seçim yolu.","media\u002Fatilim-web\u002F21-panel-blok-editor-katmanlar.webp","right",[29,130,131,137,143],{},[32,132,133,136],{},[35,134,135],{},"Blok editörü."," İçerik, 12 sütunlu bir ızgaraya yerleşen bloklardan ve\nblokların içindeki 17 modül türünden (metin, galeri, video, tablo,\nakordiyon, sekme, form, anket, mevzuat listesi…) oluşuyor. Editör, içeriği\nsitede göründüğü haliyle düzenliyor; masaüstü, tablet ve telefon önizlemesi\nvar.",[32,138,139,142],{},[35,140,141],{},"Hatayı affeden tasarım."," Geri al \u002F yinele, sürüm geçmişi ve geri yükleme,\nkaydedilmemiş değişiklikleri kurtarma, çöp kutusu.",[32,144,145,148],{},[35,146,147],{},"Katman paneli ve seçim."," Kullanıcı testlerinde iki sorun çıktı:\neditörler bir bloğun seçili olup olmadığını anlayamıyordu, alanı tamamen\nkaplayan video gibi öğelerde tıklama boşa gidiyordu. Çözüm üç adımda geldi:\ngömülü içerik için tıklama kalkanı, seçimin belirgin gösterilmesi ve seçim\nyolu, gezgin benzeri bir katman paneli.",[150,151,152,156],"case-figures",{},[124,153],{"caption":154,"src":155},"Gösterge paneli.","media\u002Fatilim-web\u002F20-panel-gosterge-paneli.webp",[124,157],{"caption":158,"src":159},"Sayfa ağacı: menü sırası sürükle-bırakla değişiyor.","media\u002Fatilim-web\u002F22-panel-sayfa-agaci.webp",[124,161],{"caption":162,"src":163,"side":128},"Etkinlik yerleri için onay akışı.","media\u002Fatilim-web\u002F26-panel-lokasyon-onay.webp",[29,165,166],{},[32,167,168,171],{},[35,169,170],{},"Yetki modeli."," 12 rol ve 151 izin; editörler yalnız yetkili oldukları\nbirimlerin içeriğini görüyor. Yetki talepleri, profil değişikliği onayları ve\ndestek talepleri panelden yürüyor; bütün işlemler kayıt altında.",[150,173,174,178],{},[124,175],{"caption":176,"src":177},"Haber düzenleme ve sağ sütun ayarları.","media\u002Fatilim-web\u002F23-panel-haber-duzenleme.webp",[124,179],{"caption":180,"src":181},"Popup formu ve canlı önizleme.","media\u002Fatilim-web\u002F24-panel-popup-onizleme.webp",[124,183],{"caption":184,"src":185},"Ana menü yönetimi.","media\u002Fatilim-web\u002F25-panel-menu-yonetimi.webp",[24,187,189],{"id":188},"kayipsiz-gecis","Kayıpsız geçiş",[29,191,192,195,198],{},[32,193,194],{},"Eski içeriklerin numaraları ve adresleri korunuyor; eski adreslerdeki bölüm\nadları yeni karşılıklarına yönlendiriliyor.",[32,196,197],{},"Geçiş günü için aşamalara bölünmüş, her adımın durumunu kaydeden ve\nkesildiği yerden devam edebilen bir geçiş komutu; yanında adım adım\noperasyon ve geri dönüş planı.",[32,199,200],{},"Eski verideki tutarsızlıklar (yanlış eşlenmiş alanlar, farklı yazılmış yer\nadları, eski dosya yükleyicisinin bıraktığı artıklar) tespit edilip düzeltme\nlistesine alındı.",[24,202,204],{"id":203},"ziyaretci-deneyimi","Ziyaretçi deneyimi",[124,206],{"caption":207,"src":208,"side":128,":tall":209},"Bir bölümün ana sayfası.","media\u002Fatilim-web\u002F03-onyuz-birim-anasayfa.webp","true",[29,211,212,218,224,230],{},[32,213,214,217],{},[35,215,216],{},"İki tema."," v2 (mevcut tasarım) ve v3 (tamamen yeni tasarım) aynı\niçerikten besleniyor; biri ötekine tek bir ayarla geçiyor. İkisi sayfa\nsonundaki vitrinde yan yana duruyor.",[32,219,220,223],{},[35,221,222],{},"Liste mantığı."," Üniversite geneli duyurular ve öne çıkan haberler ayrı\npencerelerde; süresi geçen duyurular arşive düşüyor; etkinlikler yaklaşan \u002F\ngeçmiş diye ayrılıyor ve tek tıkla takvime eklenebiliyor.",[32,225,226,229],{},[35,227,228],{},"Kadro sıralaması."," Akademik kadro kurumsal hiyerarşiye (Mütevelli\nHeyeti, Rektörlük, birimler) ve sicil sırasına göre listeleniyor; istenirse\nalfabetik sıralanabiliyor.",[32,231,232,235],{},[35,233,234],{},"Mobil öncelikli"," düzen ve erişilebilirlik iyileştirmeleri.",[124,237],{"caption":238,"src":239,":tall":209},"Haberler: üniversite penceresi ve birim haberleri.","media\u002Fatilim-web\u002F04-onyuz-haberler.webp",[150,241,242,246],{},[124,243],{"caption":244,"src":245},"Birim duyuruları: önemli duyurular ve süresi geçenlerin arşivi.","media\u002Fatilim-web\u002F05-onyuz-duyurular.webp",[124,247],{"caption":248,"src":249},"Site içi arama: içerik türüne göre sekmeler.","media\u002Fatilim-web\u002F08-onyuz-arama.webp",[150,251,253,257,261],{":phones":209,"cols":252},3,[124,254],{"caption":255,"src":256,":phone":209},"Telefonda ana sayfa.","media\u002Fatilim-web\u002F10-mobil-anasayfa.webp",[124,258],{"caption":259,"src":260,":phone":209},"Telefonda birim sayfası.","media\u002Fatilim-web\u002F11-mobil-birim.webp",[124,262],{"caption":263,"src":264,":phone":209},"Telefonda müfredat.","media\u002Fatilim-web\u002F12-mobil-akts.webp",[24,266,268],{"id":267},"kurumsal-sistemlerle-butunlesme","Kurumsal sistemlerle bütünleşme",[124,270],{"caption":271,"src":272,"side":128},"AKTS kataloğu: program müfredatı.","media\u002Fatilim-web\u002F07-onyuz-akts-mufredat.webp",[29,274,275,278],{},[32,276,277],{},"Personel bilgileri kurumsal personel sisteminden otomatik güncelleniyor;\nakademisyen profillerinde hangi bilginin görüneceği panelden yönetiliyor.",[32,279,280],{},"AKTS \u002F Bologna kataloğu: 196 program ve yaklaşık 7.400 ders; güncel ve arşiv\nmüfredatlar, program içi ders sayfaları, öğrenme çıktısı matrisleri.",[24,282,284],{"id":283},"kalite-ve-guvenlik","Kalite ve güvenlik",[29,286,287,290,293,296],{},[32,288,289],{},"Yaklaşık 1.000 otomatik test (birim ve özellik testleri).",[32,291,292],{},"Bağımsız bir sızma testi: bulguların neredeyse tamamı kapatıldı, kalanın\nyazılım tarafı tamamlandı.",[32,294,295],{},"Canlıya geçiş öncesi iş mantığı denetimi: 144 bulgunun 136'sı kapatıldı;\nkritik bulguların tamamı çözüldü.",[32,297,298],{},"Geliştirme ortamında, veritabanında olmayan bir alana erişilmeye\nçalışıldığında bunu otomatik yakalayan bir denetim; yük testi senaryoları ve\noperasyon notları.",[24,300,302],{"id":301},"belgelendirme","Belgelendirme",[124,304],{"caption":305,"src":306,"side":128},"Panel içi kılavuz; işaretli görseller kodla üretiliyor.","media\u002Fatilim-web\u002F27-panel-kullanim-kilavuzu.webp",[29,308,309,312],{},[32,310,311],{},"Kullanım kılavuzu panelin içinde. Görselleri elle değil kodla üretiliyor:\nbir betik paneli açıyor, ilgili ekranı hazırlıyor, numaralı işaretleri ve\nvurguları ekleyip görüntüyü alıyor. Arayüz değiştiğinde bütün kılavuz\ngörselleri tek komutla yenileniyor.",[32,313,314],{},"Kılavuz yazılırken her davranış koddan doğrulandı; bu sırada bulunan hatalar\nayrı bir iş kuyruğuna alındı.",[12,316,318],{"id":317},"teslim","Teslim",[17,320,321],{},"Kurumsal site (v2 ve v3 temaları), VectorCMS içerik yönetim paneli, AKTS \u002F\nBologna kataloğu ve panel içi kullanım kılavuzu.",[323,324,325,336],"table",{},[326,327,328],"thead",{},[329,330,331,334],"tr",{},[332,333],"th",{},[332,335],{},[337,338,339,348,356,364,372,380,388,396],"tbody",{},[329,340,341,345],{},[342,343,344],"td",{},"Süre",[342,346,347],{},"14+ ay",[329,349,350,353],{},[342,351,352],{},"Commit",[342,354,355],{},"1.373",[329,357,358,361],{},[342,359,360],{},"Sürüm",[342,362,363],{},"VectorCMS 1.0'dan 2.0 sürüm adayı 12'ye",[329,365,366,369],{},[342,367,368],{},"Panel ekranı \u002F bileşeni",[342,370,371],{},"113 ekran, 97 bileşen",[329,373,374,377],{},[342,375,376],{},"Veritabanı göçü",[342,378,379],{},"133",[329,381,382,385],{},[342,383,384],{},"Otomatik test",[342,386,387],{},"~1.000",[329,389,390,393],{},[342,391,392],{},"Taşınan içerik",[342,394,395],{},"~25.000 sayfa, haber, duyuru ve etkinlik",[329,397,398,401],{},[342,399,400],{},"Birim sitesi",[342,402,403],{},"313",[24,405,407],{"id":406},"yol-haritasi","Yol haritası",[323,409,410,423],{},[326,411,412],{},[329,413,414,417,420],{},[332,415,416],{},"Dönem",[332,418,419],{},"Aşama",[332,421,422],{},"Çıktı",[337,424,425,436,447,458,469,480,491,502,513,524],{},[329,426,427,430,433],{},[342,428,429],{},"Tem – Ağu 2025",[342,431,432],{},"Keşif ve tasarım sistemi",[342,434,435],{},"Kurumsal tasarım dili, iç sayfa şablonu, ilk ön yüz prototipi, gezinme mimarisi",[329,437,438,441,444],{},[342,439,440],{},"Eyl – Kas 2025",[342,442,443],{},"İçerik modeli ve panel çekirdeği",[342,445,446],{},"VectorCMS'in ilk sürümü",[329,448,449,452,455],{},[342,450,451],{},"Kas 2025 – Oca 2026",[342,453,454],{},"Bakım molası",[342,456,457],{},"Sol dirsek kırıldı, iki yerden platin takıldı. Bu aralıkta sürüm yükselten tek sistem geliştiricinin kendisiydi.",[329,459,460,463,466],{},[342,461,462],{},"Ocak 2026",[342,464,465],{},"Panel lansmanı",[342,467,468],{},"VectorCMS 1.0: sürüm geçmişi, işlem kaydı, popup ve taslaklar, form oluşturucu",[329,470,471,474,477],{},[342,472,473],{},"Şub – Mar 2026",[342,475,476],{},"Yeni site, ilk sürüm adayı",[342,478,479],{},"Ana sayfa yönetimi, çöp kutusu, site içi arama, medya, mobil ve erişilebilirlik",[329,481,482,485,488],{},[342,483,484],{},"Nisan 2026",[342,486,487],{},"Çok dillilik ve geçiş stratejisi",[342,489,490],{},"Türkçe \u002F İngilizce içerik; tek veritabanı kararı ve göç provası",[329,492,493,496,499],{},[342,494,495],{},"Nis – May 2026",[342,497,498],{},"Güvenlik",[342,500,501],{},"Bağımsız sızma testi; bulguların kapatılması, kararlılık sürümü",[329,503,504,507,510],{},[342,505,506],{},"Haziran 2026",[342,508,509],{},"Kurum içi test ortamı",[342,511,512],{},"Anketler, form geliştirmeleri; yönetim ve birim geri bildirimleri",[329,514,515,518,521],{},[342,516,517],{},"Eylül 2026",[342,519,520],{},"Denetim ve yeni arayüz",[342,522,523],{},"İş mantığı denetimi; panelin yenilenen arayüzü; sitenin v3 teması; yük testi hazırlığı",[329,525,526,529,532],{},[342,527,528],{},"Ekim 2026",[342,530,531],{},"Kullanıcı deneyimi ve belgelendirme",[342,533,534],{},"Blok editöründe katman paneli ve seçim iyileştirmeleri; işaretli görsellerle kullanım kılavuzu",[12,536,538],{"id":537},"calisma-durumu","Çalışma durumu",[17,540,541],{},"Temmuz 2025'te başladı, sürüyor. Yayın tarihi teknik hazırlıktan çok kurumun\nonay süreçlerine bağlı; bu yüzden her aşamayı kendi içinde kullanılabilir\nolacak şekilde planladım.",[24,543,545],{"id":544},"ogrendiklerim","Öğrendiklerim",[29,547,548,554,560,566],{},[32,549,550,553],{},[35,551,552],{},"Eski veri en büyük bilinmezdi."," Teknik olarak doğru görünen bir göç bile\neski sistemin alışkanlıklarını (alanların farklı amaçlarla kullanılması, aynı\nyerin farklı yazılışları) taşıyabiliyor. Ekranları eski siteyle yan yana\nkoyup farkın izini veriye kadar sürmek en güvenilir yöntem oldu.",[32,555,556,559],{},[35,557,558],{},"Geri bildirim, kodda görünmeyen kuralları ortaya çıkarıyor.","\nDekanlıklardan ve birimlerden gelen geri bildirimler, kurumsal hiyerarşiye ve\nkurum diline dair kuralları gün yüzüne çıkardı (kadro sıralaması, \"IT\ndesteği\" yerine \"Sistem Yöneticisi\" gibi).",[32,561,562,565],{},[35,563,564],{},"Tekrar eden iş otomatiğe bağlanmalı."," Göç provaları, testler, kılavuz\ngörselleri ve denetimler komutla çalışıyor; bu hem hızı hem tutarlılığı\nkorudu.",[32,567,568,571],{},[35,569,570],{},"Yapay zekâ destekli geliştirmede doğrulama disiplini."," Geliştirmede yapay\nzekâ araçlarından yararlandım. Hız kazandırdılar; ama eski sistemden\naktarılan iş mantığında doğrulanmamış varsayımlar da üretebildiklerini\ngördüm. Bunu, her davranışı kaynağıyla (eski kod, gerçek veri şeması)\nkarşılaştıran ve sorunları otomatik yakalayan denetimlerle dengeledim.",{"title":573,"searchDepth":574,"depth":574,"links":575},"",2,[576,581,589,592],{"id":14,"depth":574,"text":15,"children":577},[578,579,580],{"id":26,"depth":252,"text":27},{"id":59,"depth":252,"text":60},{"id":81,"depth":252,"text":82},{"id":117,"depth":574,"text":118,"children":582},[583,584,585,586,587,588],{"id":121,"depth":252,"text":122},{"id":188,"depth":252,"text":189},{"id":203,"depth":252,"text":204},{"id":267,"depth":252,"text":268},{"id":283,"depth":252,"text":284},{"id":301,"depth":252,"text":302},{"id":317,"depth":574,"text":318,"children":590},[591],{"id":406,"depth":252,"text":407},{"id":537,"depth":574,"text":538,"children":593},[594],{"id":544,"depth":252,"text":545},"Atılım Üniversitesi","313 birim sitesini barındıran kurumsal sitenin ve ona özel içerik yönetim panelinin baştan kurulması; eski siteden içerik ve adres kaybetmeden geçiş.",false,"md",null,"kurumsal web · içerik yönetimi",[602,603],"media\u002Fatilim-web\u002F01-onyuz-anasayfa-ust.webp","media\u002Fatilim-web\u002F09-onyuz-mevcut-tasarim-anasayfa.webp",[605,606],"Atılım Üniversitesi web sitesi, v3 tema ana sayfa: kampüs fotoğrafı, duyuru ve etkinlik kutuları","Atılım Üniversitesi web sitesi, v2 tema ana sayfa",[608,609],"v3 tema","v2 tema",{},true,1,"\u002Ftr\u002Fwork\u002Fatilim-university-web","2018'den beri kullanılan site, 300'ü aşkın birimin içeriğini barındıran ve büyüdükçe yönetilmesi zorlaşan bir yapıya dönüşmüştü; on binlerce içeriğin ve yıllardır dışarıdan bağlantı verilen adreslerin korunması gerekiyordu.","12 rol ve 151 izinlik bir yetki modeliyle çalışan panel, yaklaşık 25.000 içeriği kayıpsız taşıyan bir geçiş planı, yaklaşık 1.000 otomatik test ve bağımsız denetimlerden geçmiş bir kod tabanı.",{"title":6,"description":596},"tr\u002Fwork\u002Fatilim-university-web",[619,620,621,622,623,624,625,626,627],"laravel","vue","primevue","blade","alpine.js","tailwind","mysql","playwright","pest","uzzYsBO_b6lh-sSRvEd7Ig5Pez86VzQY19cmHrdS-wk",{"id":630,"title":631,"approach":632,"body":633,"client":595,"description":1000,"draft":597,"extension":598,"href":1001,"kind":1002,"media":1003,"mediaAlt":1006,"mediaCaptions":1009,"meta":1012,"navigation":611,"order":574,"path":1013,"problem":1014,"result":1015,"seo":1016,"stem":1017,"tech":1018,"unreleased":597,"__hash__":1022},"work_tr\u002Ftr\u002Fwork\u002Fconnect-atilim.md","Atılım Connect","İçerik koddan ayrı tutulur, tamamı panelden yönetilir; otomasyon önerir, insan onaylar; kullanılmayan modüller kaldırılır, sürümler testlerle güncel tutulur.",{"type":9,"value":634,"toc":980},[635,637,640,644,647,661,663,695,697,701,705,708,719,723,727,730,734,737,741,745,748,752,756,759,763,766,769,779,789,793,796,798,801,804,870,872,941,943,946,948],[12,636,15],{"id":14},[17,638,639],{},"Atılım Connect, aday öğrencilerin üniversiteyi tanıdığı, bölümleri incelediği\nve kampüs gezisi gibi etkinliklere başvurduğu bir portal; bütün içeriği yönetim\npanelinden geliyor. Projenin tek geliştiricisiyim; sunucu ve yayına alma\nişlerini kurumun DevOps ekibiyle birlikte yürütüyoruz.",[24,641,643],{"id":642},"sorun-ve-hedefler","Sorun ve hedefler",[17,645,646],{},"Ana site kurumun bütününe sesleniyordu; aday öğrencinin karar yolculuğuna\nodaklanan, hızlı ve kolay güncellenen bir kanal yoktu. Hedefler:",[29,648,649,652,655,658],{},[32,650,651],{},"Aday öğrencinin aradığı her şeyi (bölümler, ücretler, burslar, kampüs\nyaşamı, başvuru formları) tek çatı altında toplamak.",[32,653,654],{},"İçeriğin tamamını, yazılımcıya ihtiyaç duymadan panelden yönetilebilir\nkılmak.",[32,656,657],{},"Kampüs gezisi gibi yoğun talep gören başvuruları telefon yerine doğrulamalı\nçevrim içi formlarla almak.",[32,659,660],{},"Akademik yapı bilgisini (fakülte, bölüm, yönetici) ana siteyle tutarlı\ntutmak ve aynı verinin iki yere elle girilmesine son vermek.",[24,662,82],{"id":81},[29,664,665,671,677,683,689],{},[32,666,667,670],{},[35,668,669],{},"İçerik koddan ayrıdır."," Hero bölümünden istatistik kartlarına, menülerden\nhaberlere her şey panelden yönetilir; tasarım değişse de içerik işi durmaz.",[32,672,673,676],{},[35,674,675],{},"Otomasyon önerir, insan onaylar."," Ana siteden veri çeken senkronizasyon\nhiçbir kaydı kendiliğinden değiştirmez; farkları listeler, kararı editöre\nbırakır.",[32,678,679,682],{},[35,680,681],{},"Ölü ağırlık taşınmaz."," Kullanılmayan yedi modül (randevu, burs\nhesaplayıcı, SSS ve benzerleri) belirlendi ve kod tabanından tamamen\nçıkarıldı.",[32,684,685,688],{},[35,686,687],{},"Sürümler güncel kalır."," Çatı ve paket sürümleri ertelenmeden yükseltilir;\nher yükseltme otomatik tarayıcı testleriyle doğrulanır.",[32,690,691,694],{},[35,692,693],{},"Ziyaretçi verisi bizde kalır, izinle toplanır."," Çerez onayı verilmeden\nanalitik tek satır bile kayıt yazmaz.",[12,696,118],{"id":117},[24,698,700],{"id":699},"sms-dogrulamali-form-sistemi","SMS doğrulamalı form sistemi",[124,702],{"caption":703,"src":704,"side":128,":tall":209},"Kampüs gezisi başvurusu: SMS doğrulamalı dinamik form.","media\u002Fconnect\u002F16-basvuru-formu.webp",[17,706,707],{},"Kampüs gezisi başvuruları telefonla alınıyordu. Alanlarından düğme\nmetinlerine ve bilgi kutularına kadar her parçası panelden kurulabilen bir form\nmotoru yazdım.",[29,709,710,713,716],{},[32,711,712],{},"Başvurudaki telefon numarası tek kullanımlık SMS koduyla, e-posta adresi\nonay bağlantısıyla doğrulanıyor.",[32,714,715],{},"Okul adı alanı, Türkiye genelinde 14 binden fazla okul kaydı içinde anlık\narama yapıyor.",[32,717,718],{},"Başvurular panele düşüyor, yetkililere e-posta bildirimi gidiyor.",[124,720],{"caption":721,"src":722},"Form yönetimi: başlık, açıklama ve mesaj ayarları.","media\u002Fconnect\u002F14-panel-form-yonetimi.webp",[24,724,726],{"id":725},"ana-siteyle-onayli-akademik-senkronizasyon","Ana siteyle onaylı akademik senkronizasyon",[17,728,729],{},"Bölüm başkanı, telefon, web adresi gibi bilgiler ana sitede değiştikçe portal\ngeride kalıyordu. Ana siteyi düzenli aralıklarla tarayan bir komut yazdım.\nKomut bulduğu farkları \"bekliyor\" durumunda bir kuyruğa ekliyor; panel mevcut\ndeğeri ve sitedeki değeri, bir güven puanıyla birlikte yan yana gösteriyor.\nEditör her farkı tek tıkla uyguluyor ya da yok sayıyor; sistem hiçbir kaydı\nkendiliğinden değiştirmiyor.",[124,731],{"caption":732,"src":733},"Site senkronizasyonu: fark listesi; her fark uygulanır ya da yok sayılır (kişi bilgileri bulanıklaştırıldı).","media\u002Fconnect\u002F15-panel-akademik-senkron.webp",[17,735,736],{},"İşin zor kısmı Türkçeydi: büyük İ ile küçük i dönüşümü, \"Anabilim Dalı\" ile\n\"Ana Bilim Dalı\" gibi yazım farkları, kelime sırası ters yazılmış bölüm adları.\nBunlar için kelime kümelerini karşılaştıran bir eşleştirme kuruldu.",[24,738,740],{"id":739},"izinle-calisan-ziyaretci-analitigi","İzinle çalışan ziyaretçi analitiği",[124,742],{"caption":743,"src":744,"side":128},"Panelde ziyaretçi özeti; görseldeki sayılar yerel test verisidir.","media\u002Fconnect\u002F11-panel-gosterge.webp",[17,746,747],{},"Ziyaretçilerin siteyi nasıl kullandığını görmek istiyorduk, ama veriyi dışarı\nçıkarmadan. Oturuma dayalı bir izleme katmanı yazdım: cihaz türü, sayfa\ngörüntülemeleri ve en çok ziyaret edilen sayfalar panelde özetleniyor. Çerez\nbandında analitik izni verilmedikçe izleme hiç çalışmıyor; ziyaretçi henüz\nkarar vermediyse tek bir kayıt bile yazılmıyor.",[24,749,751],{"id":750},"icerik-operasyonu-panelde","İçerik operasyonu panelde",[124,753],{"caption":754,"src":755,"side":128},"Çekilen haberler: ana siteden gelen haberlerin yayın onayı.","media\u002Fconnect\u002F13-panel-haber-listesi.webp",[17,757,758],{},"Ana sitede yayımlanan haberler portala otomatik olarak çekiliyor; editör,\npanelin \"Çekilen Haberler\" listesinde hangilerinin portalda görüneceğini bir\nanahtarla seçiyor. Portala özel yazılan haberler, duyurular, etkinlikler, hero\nbölümü, menüler ve sayfalar da aynı panelden yönetiliyor. Portalın günlük\nişleyişini içerik ekibi yürütüyor.",[24,760,762],{"id":761},"tasarim-sistemi-yenilemesi","Tasarım sistemi yenilemesi",[124,764],{"caption":255,"src":765,"side":128,":phone":209},"media\u002Fconnect\u002F03-anasayfa-telefon.webp",[17,767,768],{},"İlk sürümdeki hazır şablon görüntüsünden kurtulmak için 2026 yazında ön yüzün\ntamamı tasarım token'ları üzerine yeniden kuruldu. Yenilemede özgün bir\ntipografi çifti, kurum renklerinden türetilen değişkenler, mega menülü bir\nbaşlık, infografikli \"Neden Atılım\" sayfası ve iç sayfalar için kenar çubuğu\nsabit kalan tek bir şablon var. Yeni bölümler artık aynı bileşen setiyle\naçılıyor.",[150,770,771,775],{},[124,772],{"caption":773,"src":774,":tall":209},"Neden Atılım: SVG infografikli on kart.","media\u002Fconnect\u002F08-neden-atilim.webp",[124,776],{"caption":777,"src":778,":tall":209},"Kampüs yaşamı sayfası.","media\u002Fconnect\u002F09-kampus-yasami.webp",[150,780,781,785],{},[124,782],{"caption":783,"src":784},"Haber listesi.","media\u002Fconnect\u002F06-haberler.webp",[124,786],{"caption":787,"src":788},"Haber detay sayfası.","media\u002Fconnect\u002F07-haber-detay.webp",[24,790,792],{"id":791},"catiyi-guncel-tutmak","Çatıyı güncel tutmak",[17,794,795],{},"Proje Laravel 11'den 12'ye, Filament 3'ten 5'e yükseltildi, Tailwind 4'e\ngeçirildi. Büyük sürüm atlamaları ayrı bir çalışma kopyasında yapıldı; 36 panel\nkaynağının liste ve oluşturma ekranları Playwright ile doğrulandıktan sonra\ndeğişiklikler ana koda alındı. Yayına alma da elle dosya taşımaktan çıktı,\nGitLab CI üzerinde betiklerle çalışan bir hatta bağlandı.",[12,797,318],{"id":317},[17,799,800],{},"Yayındaki portal, içerik yönetim paneli, SMS doğrulamalı form motoru, ana\nsiteyle senkronizasyon ve panelden izlenen ziyaretçi analitiği.",[17,802,803],{},"Aşağıdaki sayılar geliştirme kopyasının veritabanından alındı; canlı\nortamdaki içerik sayıları daha yüksek.",[323,805,806,814],{},[326,807,808],{},[329,809,810,812],{},[332,811],{},[332,813],{},[337,815,816,824,832,840,848,855,862],{},[329,817,818,821],{},[342,819,820],{},"Akademik birim",[342,822,823],{},"14 (7 fakülte, 4 yüksekokul, 3 enstitü), 76 bölüm",[329,825,826,829],{},[342,827,828],{},"İçerik",[342,830,831],{},"102 çekilen haber, 54 duyuru, 43 etkinlik, 15 yönetilen sayfa",[329,833,834,837],{},[342,835,836],{},"Okul kaydı (form araması)",[342,838,839],{},"14.125",[329,841,842,845],{},[342,843,844],{},"Bekleyen senkronizasyon önerisi",[342,846,847],{},"250",[329,849,850,852],{},[342,851,352],{},[342,853,854],{},"173",[329,856,857,859],{},[342,858,376],{},[342,860,861],{},"76",[329,863,864,867],{},[342,865,866],{},"Panel kaynağı",[342,868,869],{},"25",[24,871,407],{"id":406},[323,873,874,883],{},[326,875,876],{},[329,877,878,880],{},[332,879,416],{},[332,881,882],{},"Ne oldu",[337,884,885,893,901,909,917,925,933],{},[329,886,887,890],{},[342,888,889],{},"Haziran 2025",[342,891,892],{},"Kuruluş: Laravel + Filament iskeleti, akademik hiyerarşi modeli (fakülte, yüksekokul, enstitü, bölüm), çok dilli altyapı, hero ve carousel yönetimi, form sisteminin ilk sürümü",[329,894,895,898],{},[342,896,897],{},"Temmuz 2025",[342,899,900],{},"Yayına alma: üretim ortamı ayarları, medya ve statik dosya hattı, ilk gerçek içerik",[329,902,903,906],{},[342,904,905],{},"Eylül 2025",[342,907,908],{},"İşletme: panelden izlenen ziyaretçi analitiği; kapsam temizliği (yedi kullanılmayan modül, 29'dan fazla dosya ve 8 tablo kaldırıldı)",[329,910,911,914],{},[342,912,913],{},"Ekim – Aralık 2025",[342,915,916],{},"Yayın sonrası iyileştirmeler ve küçük düzeltmeler",[329,918,919,922],{},[342,920,921],{},"Mart – Mayıs 2026",[342,923,924],{},"Altyapı bakımı; form sistemine SMS doğrulaması eklendi",[329,926,927,930],{},[342,928,929],{},"Temmuz 2026",[342,931,932],{},"Büyük yenileme: yeni tasarım sistemi, Laravel 12 + Filament 5 + Tailwind 4, ana siteyle onaylı senkronizasyon, GitLab CI yayın hattı, \"Neden Atılım\" ve \"Kampüs Yaşamı\" sayfalarının yeniden yazılması",[329,934,935,938],{},[342,936,937],{},"Ağustos – Eylül 2026",[342,939,940],{},"İçerik ve ölçüm düzeltmeleri",[12,942,538],{"id":537},[17,944,945],{},"Temmuz 2025'ten beri yayında, geliştirme sürüyor. İngilizce içeriği güncel\ntutacak kapasite olmadığı için İngilizce sürüm, veriler korunarak geçici\nolarak kapatıldı; yeniden açma adımları belgelendi.",[24,947,545],{"id":544},[29,949,950,956,962,968,974],{},[32,951,952,955],{},[35,953,954],{},"Türkçe metin işlemek ayrı bir uzmanlık istiyor."," Büyük İ dönüşümü,\nkelime sınırını bulanıklaştıran ekler ve aynı adın farklı yazımları yüzünden\nsenkronizasyonda düz metin karşılaştırması işe yaramadı; metni normalleştirmek\nve kelime kümeleriyle eşleştirmek gerekti.",[32,957,958,961],{},[35,959,960],{},"Özellik kaldırmak da mühendislik işi."," Yedi modülü çıkarırken modeller,\npanel kaynakları, göçler ve tablolar dahil her izi temizlemek, eklerken\ngerekenden daha fazla dikkat istedi; karşılığında bakım yükü kalıcı olarak\nazaldı.",[32,963,964,967],{},[35,965,966],{},"Çok dillilik bedava değil."," TR \u002F EN altyapısını baştan kurmak doğruydu;\nİngilizce içeriği güncel tutacak kapasite yokken o sürümü yayında tutmak\nyanlıştı. Veriyi koruyarak kapatmak ve yeniden açma adımlarını belgelemek\niki tarafın da işini gördü.",[32,969,970,973],{},[35,971,972],{},"Büyük yükseltmeler test edilmeden ana koda girmez."," Filament 5 geçişi\nayrı bir kopyada yapıldı; gerçek oluşturma, düzenleme ve kaydetme akışları\ntarayıcı otomasyonuyla doğrulandı. Yayında sürpriz çıkmadı.",[32,975,976,979],{},[35,977,978],{},"Kurumun işleyişine uymak da teknik kararın parçası."," Yayın hattı DevOps\nekibinin tercih ettiği modele göre kuruldu. Veritabanı göçlerinin yayın\nbetiğinde değil, kontrollü biçimde elle çalıştırılması gibi kuralları baştan\nnetleştirmek sürprizlerin önüne geçti.",{"title":573,"searchDepth":574,"depth":574,"links":981},[982,986,994,997],{"id":14,"depth":574,"text":15,"children":983},[984,985],{"id":642,"depth":252,"text":643},{"id":81,"depth":252,"text":82},{"id":117,"depth":574,"text":118,"children":987},[988,989,990,991,992,993],{"id":699,"depth":252,"text":700},{"id":725,"depth":252,"text":726},{"id":739,"depth":252,"text":740},{"id":750,"depth":252,"text":751},{"id":761,"depth":252,"text":762},{"id":791,"depth":252,"text":792},{"id":317,"depth":574,"text":318,"children":995},[996],{"id":406,"depth":252,"text":407},{"id":537,"depth":574,"text":538,"children":998},[999],{"id":544,"depth":252,"text":545},"Aday öğrencinin karar yolculuğu için kurulan, bütün içeriği panelden yönetilen portal: SMS doğrulamalı formlar, ana siteyle onaya bağlı senkronizasyon, yalnız izinle çalışan ziyaretçi analitiği.","https:\u002F\u002Fconnect.atilim.edu.tr","aday öğrenci portalı",[1004,1005],"media\u002Fconnect\u002F01-anasayfa-hero.webp","media\u002Fconnect\u002F12-panel-icerik-editoru.webp",[1007,1008],"Atılım Connect aday öğrenci portalının ana sayfası: kampüs görselleri ve \"Neden Atılım?\" listesi","Atılım Connect yönetim panelinde içerik editörü",[1010,1011],"portal","yönetim paneli",{},"\u002Ftr\u002Fwork\u002Fconnect-atilim","Ana site kurumun bütününe sesleniyordu; aday öğrencinin karar yolculuğuna odaklanan, hızlı ve kolay güncellenen bir kanal yoktu. Kampüs gezisi başvuruları telefonla alınıyordu.","Temmuz 2025'ten beri yayında: SMS doğrulamalı form motoru, ana siteyle onaya bağlı akademik senkronizasyon, izin verilmeden kayıt yazmayan analitik. Günlük işleyişi içerik ekibi yürütüyor.",{"title":631,"description":1000},"tr\u002Fwork\u002Fconnect-atilim",[619,1019,1020,624,625,626,1021],"filament","livewire","gitlab ci","010TOtjTpk9wsPQq8Ck_b13Gc_oL4niWA7fCYB-zQ_Y",{"id":1024,"title":1025,"approach":1026,"body":1027,"client":595,"description":1305,"draft":597,"extension":598,"href":599,"kind":1306,"media":1307,"mediaAlt":1310,"mediaCaptions":1313,"meta":1316,"navigation":611,"order":252,"path":1317,"problem":1318,"result":1319,"seo":1320,"stem":1321,"tech":1322,"unreleased":611,"__hash__":1328},"work_tr\u002Ftr\u002Fwork\u002Frequest-workflow.md","Kurumsal iletişim talep ve iş akışı sistemi","Önce şema, sonra kod: formlar ve iş akışları şema olarak tanımlanır, panel içindeki editörlerle değiştirilir; istemci ve sunucu aynı kuralları uygular; formlar ve akışlar sürümlenir.",{"type":9,"value":1028,"toc":1285},[1029,1031,1034,1037,1041,1043,1060,1062,1094,1097,1099,1103,1107,1110,1114,1118,1121,1125,1129,1132,1136,1140,1143,1147,1151,1154,1157,1161,1165,1168,1178,1182,1186,1189,1199,1203,1207,1211,1214,1218,1221,1223,1226,1229,1252,1254,1257,1259],[12,1030,15],{"id":14},[17,1032,1033],{},"Kurumsal İletişim ve Tanıtım Direktörlüğü'ne gelen web sayfası, grafik\ntasarım, e-posta duyurusu, web duyurusu ve haber taleplerini tek sistemde\ntoplayan bir uygulama. Personel talebini o türe ait formla iletiyor;\nDirektörlük talebi onaylıyor, ilgili ekipten bir sorumluya atıyor, gerekirse\nrevize istiyor ve işi teslim ediyor. Tanıtım ekibi de okul ziyaretlerini ve\nfuarları, kişisel veri tutmadan aynı sistemde ölçüyor.",[17,1035,1036],{},"Ürün sahibi ve geliştirici benim; geliştirmede yapay zekâ kodlama asistanı\n(Claude Code) kullandım. Arayüz, önceden hazırlanmış bir tasarım projesine göre\nuygulandı.",[124,1038],{"caption":1039,"src":1040,"side":128},"Talep türü seçimi: her tür için ayrı form ve tahmini süre.","media\u002Ftalep\u002F02-talep-turu-secimi.webp",[24,1042,60],{"id":59},[29,1044,1045,1048,1051,1054,1057],{},[32,1046,1047],{},"Her talep türünün kendi formu ve kendi süreci olsun, ama hepsi tek bir ortak\ngörünümde toplansın.",[32,1049,1050],{},"Talep eden, talebinin hangi aşamada ve kimde olduğunu, ne zaman teslim\nedileceğini görsün.",[32,1052,1053],{},"Yönetim iş yükünü, gecikmeleri ve hizmet süresi hedeflerine uyumu izlesin.",[32,1055,1056],{},"Formlar ve süreçler kod yazmadan değiştirilebilsin.",[32,1058,1059],{},"Tanıtım etkinlikleri, aday öğrenci verisi tutulmadan sayılarla ölçülsün.",[24,1061,82],{"id":81},[29,1063,1064,1070,1076,1082,1088],{},[32,1065,1066,1069],{},[35,1067,1068],{},"Önce şema, sonra kod."," Form ve iş akışı şemaları, kod yazılmadan önce\nbelgelendi ve örneklerle doğrulandı; sonraki her adım bu sözleşmeye dayandı.",[32,1071,1072,1075],{},[35,1073,1074],{},"Kural tek yerde."," İstemci ve sunucu koşulları aynı kurallarla\ndeğerlendiriyor; bağlayıcı olan her zaman sunucu doğrulaması.",[32,1077,1078,1081],{},[35,1079,1080],{},"Geçmiş bozulmaz."," Formlar ve akışlar sürümlü; açık bir talep, başladığı\nsürümle yoluna devam ediyor.",[32,1083,1084,1087],{},[35,1085,1086],{},"Görünürlük role göre."," Her kullanıcı yalnız kendi işini ilgilendireni\ngörüyor.",[32,1089,1090,1093],{},[35,1091,1092],{},"Yapay zekâyla çalışırken kontrol bende."," Kararları, kapsamı ve yayın\nadımlarını ben belirledim; testleri, statik analizi ve ekranları her aşamada\nkendim kontrol ettim.",[17,1095,1096],{},"Görsellerdeki veriler örnektir: kişi adlarının yerine rol etiketleri kondu;\nürün adı, talep numaraları ve birim adları bulanıklaştırıldı.",[12,1098,118],{"id":117},[24,1100,1102],{"id":1101},"sema-tabanli-formlar","Şema tabanlı formlar",[124,1104],{"caption":1105,"src":1106,"side":128,":tall":209},"Yeni talep formu: seçime göre açılan alanlar ve süreç özeti.","media\u002Ftalep\u002F03-yeni-talep-formu.webp",[17,1108,1109],{},"Beş talep türünün her biri farklı alanlar istiyor ve bu ihtiyaçlar zamanla\ndeğişiyor. Formlar JSON şemasıyla tanımlanıyor: bölümler, alan tipleri, belli\nkoşulda görünen ya da zorunlu hâle gelen alanlar. Panel içindeki form editörü\nbu şemayı görsel olarak düzenliyor, yayımlanmış alanların tanımlayıcısını\nkilitliyor ve her yayını yeni bir sürüm olarak saklıyor.",[124,1111],{"caption":1112,"src":1113},"Form editörü: alan tipleri ve koşullu alanlar.","media\u002Ftalep\u002F12-form-builder.webp",[24,1115,1117],{"id":1116},"gorsel-is-akisi-motoru","Görsel iş akışı motoru",[17,1119,1120],{},"Bazı talepler onaydan geçiyor, bazıları doğrudan ekibe gidiyor; süreç talebin\ntürüne ve içeriğine göre değişiyor. Akışı durum, koşul, eylem ve bekleme\nadımlarından oluşan bir graf olarak modelledim. Geçişler role bağlı; koşul\nadımı talebin içeriğine göre dallanıyor (örneğin küçük düzeltmeler onay\nadımını atlıyor). Eylem adımları bildirim gönderiyor ve atama yapıyor; bekleme\nadımları teslimden önce hatırlatma kuruyor. Akış, tuval üzerinde çalışan görsel\nbir editörle yönetiliyor. Editör yayından önce grafı denetliyor ve rollere göre\nsimülasyon sunuyor.",[124,1122],{"caption":1123,"src":1124},"Akış tuvali: durum, koşul, eylem ve bekleme adımları; geçişler role bağlı, koşul dalları ayrı çizgide.","media\u002Ftalep\u002F19-akis-tuvali.webp",[124,1126],{"caption":1127,"src":1128,"side":128},"Rol ve durum simülasyonu: bir rolün hangi durumda hangi geçişleri ve alanları gördüğü.","media\u002Ftalep\u002F25-akis-simulasyonu.webp",[17,1130,1131],{},"Simülasyon, akışı yayından önce bir rolün gözünden gösteriyor: seçilen rol ve\ndurumda hangi eylem düğmelerinin çıkacağını, hangi alanların\ndüzenlenebileceğini. Böylece yanlış role bağlanmış bir geçiş yayına çıkmadan\nyakalanıyor.",[24,1133,1135],{"id":1134},"kuralli-kanban","Kurallı kanban",[124,1137],{"caption":1138,"src":1139,"side":128},"Onay adımı: talep onaylanırken sorumlu ve tahmini teslim tarihi isteniyor.","media\u002Ftalep\u002F13-onay-diyalogu.webp",[17,1141,1142],{},"Sürükle-bırak pano kullanışlı, ama süreci kolayca atlatabilir. Kart\nbırakıldığında sunucu, iki aşama arasında tanımlı ve kullanıcının yetkili\nolduğu bir geçiş olup olmadığına bakıyor. Ek bilgi gerektiren geçişlerde bir\npencere açılıyor; tanımsız ya da yetkisiz taşımalar gerekçesi gösterilerek\nreddediliyor.",[24,1144,1146],{"id":1145},"surume-sabitlenen-talepler-ve-anlamsal-asamalar","Sürüme sabitlenen talepler ve anlamsal aşamalar",[124,1148],{"caption":1149,"src":1150,"side":128,":tall":209},"Yönetim tarafında talep: olay günlüğü, durum değiştirme ve iç notlar.","media\u002Ftalep\u002F10-talep-detayi-yonetim.webp",[17,1152,1153],{},"Her talep, başladığı akış sürümüne bağlı. Yeni sürüm yayımlandığında açık\ntalepler etkilenmiyor; yönetici isterse eski aşamaları yenileriyle eşleyerek\ntalepleri taşıyor ve bu işlem olay günlüğüne yazılıyor.",[17,1155,1156],{},"Akışlar editörde serbestçe değiştirilebiliyordu, ama pano, raporlar ve hizmet\nsüresi göstergeleri belirli aşama adlarına bakıyordu. Bir aşamanın adı\ndeğişirse bu ekranlar hata vermeden boş kalmaya başlayacaktı. Bu yüzden\naşamalara anlamsal türler (onay, çalışılıyor, revize, tamamlandı), geçişlere\nde amaç (onayla, reddet, bilgi iste) eklendi. Ekranlar artık adlara değil\nanlama bakıyor.",[24,1158,1160],{"id":1159},"talep-edenin-gozunden","Talep edenin gözünden",[124,1162],{"caption":1163,"src":1164,"side":128,":tall":209},"Talep eden: durum zaman çizelgesi, revize isteği ve yapılabilecek işlemler.","media\u002Ftalep\u002F04-talep-detayi-talep-eden.webp",[17,1166,1167],{},"Talep eden kişi, talebinin hangi aşamada olduğunu, kimde beklediğini ve ne\nzaman teslim edileceğini kendi ekranında görüyor; revize isteklerini de\nburadan yanıtlıyor. Bütün ekranlar telefonda da aynı işlevi koruyor.",[150,1169,1170,1174],{":phones":209,"cols":574},[124,1171],{"caption":1172,"src":1173,":tall":209,":phone":209},"Telefonda talep türü seçimi.","media\u002Ftalep\u002F21-telefon-talep-turu.webp",[124,1175],{"caption":1176,"src":1177,":tall":209,":phone":209},"Telefonda yeni talep formu.","media\u002Ftalep\u002F22-telefon-yeni-talep.webp",[24,1179,1181],{"id":1180},"yonetim-gorunumu-ve-raporlar","Yönetim görünümü ve raporlar",[124,1183],{"caption":1184,"src":1185,"side":128,":tall":209},"Raporlar: tür ve birime göre süreler, revize oranı, hizmet süresi uyumu.","media\u002Ftalep\u002F11-raporlar.webp",[17,1187,1188],{},"Yönetim panosu onay bekleyen talepleri, gecikmeleri ve ekiplerin iş yükünü bir\narada gösteriyor; talep listesi tür, birim, sorumlu ve aşamaya göre\nsüzülebiliyor. Raporlar tür ve birime göre süreleri, revize oranını ve hizmet\nsüresi hedeflerine uyumu özetliyor.",[150,1190,1191,1195],{},[124,1192],{"caption":1193,"src":1194},"Yönetim panosu: onay bekleyenler, gecikmeler ve ekip yükü.","media\u002Ftalep\u002F05-yonetim-panosu.webp",[124,1196],{"caption":1197,"src":1198},"Akış durumu: her talep türünde aşamalara göre yük ve darboğaz uyarısı.","media\u002Ftalep\u002F08-talepler-akis-durumu.webp",[124,1200],{"caption":1201,"src":1202},"Talep listesi: tür, birim, sorumlu ve aşamaya göre süzme.","media\u002Ftalep\u002F06-talepler-liste.webp",[24,1204,1206],{"id":1205},"kisisel-veri-tutmadan-etkinlik-olcumu","Kişisel veri tutmadan etkinlik ölçümü",[124,1208],{"caption":1209,"src":1210,"side":128},"Etkinlik dönem raporu: türe, ile, maliyete ve personele göre dağılım.","media\u002Ftalep\u002F17-etkinlik-raporu.webp",[17,1212,1213],{},"Tanıtım ekibi okul ziyaretlerinin ve fuarların etkisini görmek istiyor, ama\naday öğrencilerin verisini tutmak istemiyor. Modül yalnız sayıları (ziyaretçi,\ngörüşme, toplanan form adedi), kurum bazında kayıtları ve maliyet kalemlerini\nsaklıyor; takvim, kurum dizini ve dönem raporu bu verilerden besleniyor.",[24,1215,1217],{"id":1216},"rol-bazli-gorunurluk-ve-guvenlik","Rol bazlı görünürlük ve güvenlik",[17,1219,1220],{},"Sistemi talepte bulunan personel, yöneticiler, işi yapan ekipler ve tanıtım\nekibi birlikte kullanıyor. Her ekran ve her işlem için yetki sunucuda\ndenetleniyor; işi yapan ekipler yalnız kendi taleplerini, tanıtım personeli\nyalnız görevli olduğu etkinlikleri görüyor. Bir iç güvenlik denetimi yapıldı;\nbulguların tamamı giderildi ve her biri otomatik bir testle güvence altına\nalındı.",[12,1222,318],{"id":317},[17,1224,1225],{},"Talep eden personel uygulaması, yönetim paneli, form editörü, görsel iş akışı\neditörü ve tanıtım etkinlikleri modülü; akışları hazır beş talep türü. Birim,\nözellik ve tarayıcı testleri ile statik analiz her aşamada işin parçasıydı.",[17,1227,1228],{},"Geliştirme Eylül 2026'da, yaklaşık iki haftada şu sırayla ilerledi:",[62,1230,1231,1234,1237,1240,1243,1246,1249],{},[32,1232,1233],{},"Form ve akış şemalarının belgelenmesi.",[32,1235,1236],{},"Veri katmanı, şema doğrulayıcı ve iş akışı motoru.",[32,1238,1239],{},"Talep eden ve yönetim ekranları; kanban ve raporlar.",[32,1241,1242],{},"Form editörü, raporların dışa aktarımı ve görsel iş akışı editörü.",[32,1244,1245],{},"Tanıtım etkinlikleri modülü.",[32,1247,1248],{},"Role göre giriş ve menüler, kurum içindeki ilk kurulum.",[32,1250,1251],{},"İç güvenlik denetimi ve sıkılaştırma.",[12,1253,538],{"id":537},[17,1255,1256],{},"Kurum içi test aşamasında; henüz yayına alınmadı, geliştirme sürüyor. Bu\nnedenle gerçek kullanım verisi (talep ve kullanıcı sayıları) paylaşılmıyor.",[24,1258,545],{"id":544},[29,1260,1261,1267,1273,1279],{},[32,1262,1263,1266],{},[35,1264,1265],{},"Esneklik yeni bağımlılıklar doğuruyor."," Görsel editör kullanıcıya\nserbestlik tanıdıkça, o yapıya adlar üzerinden bakan her ekran kırılgan hâle\ngeldi. Anlamı yapının içine yerleştirmek (aşama türleri) bugünkü sorunu\nçözdü, sistemi başka birimlere açmaya da hazırladı.",[32,1268,1269,1272],{},[35,1270,1271],{},"Yazılı bir sözleşme işi hızlandırıyor."," Şemaları önce yazmak, sonraki\naşamaların birkaç gün içinde tutarlı biçimde ilerlemesini sağladı.",[32,1274,1275,1278],{},[35,1276,1277],{},"Yerelde çalışması yetmiyor."," Kurum içindeki ilk kurulumda, yerelde fark\nedilmeyen bir eksik ortaya çıktı. Kurulumu tekrarlanabilir bir betiğe\nbağlamak bu tür sorunları erkenden yakalıyor.",[32,1280,1281,1284],{},[35,1282,1283],{},"Yapay zekâyla verim, ancak disiplinle."," Asistan hızlı üretiyor; kaliteyi\nher aşamadaki test, statik analiz ve ekran kontrolü sağladı. Kapsam,\ngüvenlik kararları ve yayın adımları bende kaldı.",{"title":573,"searchDepth":574,"depth":574,"links":1286},[1287,1291,1301,1302],{"id":14,"depth":574,"text":15,"children":1288},[1289,1290],{"id":59,"depth":252,"text":60},{"id":81,"depth":252,"text":82},{"id":117,"depth":574,"text":118,"children":1292},[1293,1294,1295,1296,1297,1298,1299,1300],{"id":1101,"depth":252,"text":1102},{"id":1116,"depth":252,"text":1117},{"id":1134,"depth":252,"text":1135},{"id":1145,"depth":252,"text":1146},{"id":1159,"depth":252,"text":1160},{"id":1180,"depth":252,"text":1181},{"id":1205,"depth":252,"text":1206},{"id":1216,"depth":252,"text":1217},{"id":317,"depth":574,"text":318},{"id":537,"depth":574,"text":538,"children":1303},[1304],{"id":544,"depth":252,"text":545},"Bir direktörlüğe gelen web, grafik, duyuru ve haber taleplerini tek sistemde toplayan; formların ve onay süreçlerinin panelden tasarlandığı bir uygulama.","talep ve iş akışı yönetimi",[1308,1309],"media\u002Ftalep\u002F18-akis-editoru.webp","media\u002Ftalep\u002F07-talepler-kanban.webp",[1311,1312],"İş akışı editörü: düğüm listesi, akış şeması ve durum özellikleri paneli","Durum sütunlarıyla talepler kanban panosu",[1314,1315],"iş akışı editörü","kanban",{},"\u002Ftr\u002Fwork\u002Frequest-workflow","Talepler farklı kanallardan dağınık geliyordu; bir talebin hangi aşamada olduğu, kimde beklediği bir bakışta görülemiyordu. Her talep türü farklı bilgi ve farklı bir süreç gerektiriyordu.","Talep eden süreci açıkça izliyor, yönetim pano, kanban ve raporlarla çalışıyor; yeni bir talep türü ya da onay adımı geliştiriciyi beklemeden eklenebiliyor.",{"title":1025,"description":1305},"tr\u002Fwork\u002Frequest-workflow",[619,1323,620,1324,624,1325,1326,1327,627,626],"inertia","typescript","vue flow","json schema","jsonlogic","lqLDtnjwWfSj9lBkctBIgTWY6ECr6ZJlj4aBqqYjhcU",{"id":1024,"title":1025,"approach":1026,"body":1330,"client":595,"description":1305,"draft":597,"extension":598,"href":599,"kind":1306,"media":1516,"mediaAlt":1517,"mediaCaptions":1518,"meta":1519,"navigation":611,"order":252,"path":1317,"problem":1318,"result":1319,"seo":1520,"stem":1321,"tech":1521,"unreleased":611,"__hash__":1328},{"type":9,"value":1331,"toc":1496},[1332,1334,1336,1338,1340,1342,1354,1356,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1426,1428,1430,1432,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456,1472,1474,1476,1478],[12,1333,15],{"id":14},[17,1335,1033],{},[17,1337,1036],{},[124,1339],{"caption":1039,"src":1040,"side":128},[24,1341,60],{"id":59},[29,1343,1344,1346,1348,1350,1352],{},[32,1345,1047],{},[32,1347,1050],{},[32,1349,1053],{},[32,1351,1056],{},[32,1353,1059],{},[24,1355,82],{"id":81},[29,1357,1358,1362,1366,1370,1374],{},[32,1359,1360,1069],{},[35,1361,1068],{},[32,1363,1364,1075],{},[35,1365,1074],{},[32,1367,1368,1081],{},[35,1369,1080],{},[32,1371,1372,1087],{},[35,1373,1086],{},[32,1375,1376,1093],{},[35,1377,1092],{},[17,1379,1096],{},[12,1381,118],{"id":117},[24,1383,1102],{"id":1101},[124,1385],{"caption":1105,"src":1106,"side":128,":tall":209},[17,1387,1109],{},[124,1389],{"caption":1112,"src":1113},[24,1391,1117],{"id":1116},[17,1393,1120],{},[124,1395],{"caption":1123,"src":1124},[124,1397],{"caption":1127,"src":1128,"side":128},[17,1399,1131],{},[24,1401,1135],{"id":1134},[124,1403],{"caption":1138,"src":1139,"side":128},[17,1405,1142],{},[24,1407,1146],{"id":1145},[124,1409],{"caption":1149,"src":1150,"side":128,":tall":209},[17,1411,1153],{},[17,1413,1156],{},[24,1415,1160],{"id":1159},[124,1417],{"caption":1163,"src":1164,"side":128,":tall":209},[17,1419,1167],{},[150,1421,1422,1424],{":phones":209,"cols":574},[124,1423],{"caption":1172,"src":1173,":tall":209,":phone":209},[124,1425],{"caption":1176,"src":1177,":tall":209,":phone":209},[24,1427,1181],{"id":1180},[124,1429],{"caption":1184,"src":1185,"side":128,":tall":209},[17,1431,1188],{},[150,1433,1434,1436],{},[124,1435],{"caption":1193,"src":1194},[124,1437],{"caption":1197,"src":1198},[124,1439],{"caption":1201,"src":1202},[24,1441,1206],{"id":1205},[124,1443],{"caption":1209,"src":1210,"side":128},[17,1445,1213],{},[24,1447,1217],{"id":1216},[17,1449,1220],{},[12,1451,318],{"id":317},[17,1453,1225],{},[17,1455,1228],{},[62,1457,1458,1460,1462,1464,1466,1468,1470],{},[32,1459,1233],{},[32,1461,1236],{},[32,1463,1239],{},[32,1465,1242],{},[32,1467,1245],{},[32,1469,1248],{},[32,1471,1251],{},[12,1473,538],{"id":537},[17,1475,1256],{},[24,1477,545],{"id":544},[29,1479,1480,1484,1488,1492],{},[32,1481,1482,1266],{},[35,1483,1265],{},[32,1485,1486,1272],{},[35,1487,1271],{},[32,1489,1490,1278],{},[35,1491,1277],{},[32,1493,1494,1284],{},[35,1495,1283],{},{"title":573,"searchDepth":574,"depth":574,"links":1497},[1498,1502,1512,1513],{"id":14,"depth":574,"text":15,"children":1499},[1500,1501],{"id":59,"depth":252,"text":60},{"id":81,"depth":252,"text":82},{"id":117,"depth":574,"text":118,"children":1503},[1504,1505,1506,1507,1508,1509,1510,1511],{"id":1101,"depth":252,"text":1102},{"id":1116,"depth":252,"text":1117},{"id":1134,"depth":252,"text":1135},{"id":1145,"depth":252,"text":1146},{"id":1159,"depth":252,"text":1160},{"id":1180,"depth":252,"text":1181},{"id":1205,"depth":252,"text":1206},{"id":1216,"depth":252,"text":1217},{"id":317,"depth":574,"text":318},{"id":537,"depth":574,"text":538,"children":1514},[1515],{"id":544,"depth":252,"text":545},[1308,1309],[1311,1312],[1314,1315],{},{"title":1025,"description":1305},[619,1323,620,1324,624,1325,1326,1327,627,626],1792418550893]