PGerçekleştirim Belgesi | ||
Mehmet Turan Öz Karşılaşılan Sorunlar ve Uygulanan Çözümler Bu evrede karşılaşılan sorunlar ve uygulanan çözümler teklif aşamasında sunulan amacı etkileyecek düzeyde olmamıştır. Tasarım ve analiz evrelerinde yapılan bazı eksiklik ve yanlışlıklar giderilmiş, projede tamamlanmaya çalışılan programın daha çok esas programın bir demo versiyonu olduğu göz önünde tutularak proje teklif aşamasında sunulan birkaç ufak özelliğin kodlamada kolaylık olması amacı ile değiştirilmesine karar verilmiştir. Bu değişiklikler ana hatlarıyla şöyledir:
Yazılımın Bileşenleri ve Görevleri Veritabanı Yapısı Tasarım belgesinde verilen veritabanı tasarımına genel hatlarıyla bağlı kalınmış ancak, programın kolay kodlanması için yukarıda verilen değişikler yapılmıştır. 'kullanici' tablosu CREATE TABLE `kullanici` ( 'bildiri' tablosu
Modüller Tüm modüllerden kesitler, arayüzler "Yazılımdan Kesitler" başlığı altında verilmiştir. Bu bölümde modüllerin işlevlerini ve modüllerin kullandıkları bazı özel fonksiyon ve metotları göreceğiz. Modüllerin kodları tam anlamıyla verilmemiştir. Ancak tüm dosyalar sunucuda /proje/KYS/ dizininde çalışır halde mevcuttur.
Veritabanı sınıfı tasarımda sunulan şekli ile gerçekleştirilmiştir. Yazılımın belkemiğini oluşturmaktadır. Veritabanı sınıfı, veritabanına bağlanmaya ihtiyaç duyan her modülün başında include 'db.php'; satırı ile çağırılmaktadır. $dbhost = 'localhost'; satırları ile db.php modülü veritabanına bağlanmaktadır. Her modülde db.php modülü kullanıldıktan sonra mysql_close($connection); satırı ile bağlantı kapatılmaktadır.
Programa giriş yapıldıktan sonra ekrana çıkan sayfa 3 frame'den oluşmaktadır. Üst frame "top.html" ismindedir ve her kullanıcı için statiktir. Sağ frame "menu.php"dir ve her kullanıcı tipi için değişmektedir. Kullanıcının yetki seviyesi $_SESSION['yetki_seviyesi'] değişkeni kontrol edilerek kullanıcının yetki seviyesinde sayfaların linkleri menü penceresi üstünde bastırılır. Menü penceresindeki seçenekler seçildiği takdirde açılan modüller orta göbekteki pencerede açılacaktır.
Programın anasayfa ismi "index.php"dir. Bu modüldeki bir header() fonksiyonuyla kullanıcı içinde kullanıcı girişi ile ilgili bir form yer alan "giris.html" sayfasına yönlendirilir. Burada girilen bilgiler "POST" metodu ile "uye_kontrol.php" modülüne gönderilerek veritabanına bağlanılarak kontrol edilir ve bir hata varsa hata bastırılır, hata yoksa siteye giriş gerçekleştirilir..
Ziyaretçi siteye üye olmak isterse "giris.html" sayfasından bir link ile "kayit.html" sayfasına ulaşır. Burada kayıt bilgilerini içeren bir form vardır ve bu formdaki bilgiler yine "POST" metodu ile "kayit.php" modülüne gönderilir. Burada gerekli kontroller yapılır. Eğer bir hata mevcutsa hata ekrana bastırılır ve kaydın tekrar yapılması istenir. Bir hata mevcut değilse "POST" metodu ile kaydedilen değişkenlerdeki bilgiler kullanılarak kayıt yaptıran ziyaretçiye içinde aktifleştirme modülünün linki yer alan bir e-mail gönderilir. Diğer bilgileri veritabanına eklenir.
Ziyaretçiye giden maildeki link ile bu modüle ulaşılır. $_REQUEST ile kaydedilen değişkenler kullanılarak veritabanındaki kullanıcıya ait tablo ve satır bulunur, bu sütundaki "activated" özelliği "1" olarak değiştirilir. Böylece üyelik aktifleştirilmiş olur. Üye siteye giriş yapma hakkı almıştır.
Yönetici dışındaki kullanıcıların statik kongre bilgileri, statik olmayan kayıtlı delege ve bildirileri görmek için kullandığı bir modüldür. Yönetici dışındaki tüm kullanıcılar için ortaktır. Veritabanına bağlanarak bildiri ve delegelik tablolarındaki bazı bilgileri ekrana bastırır.
Normal kullanıcı, yazar ve hakem içindir. Kullanıcının kongreye delege olarak kayıt yaptırmak için kullanacağı modüldür. Bir form doldurularak delege_kontrol.php sayfasına gönderilir. Burada programda herhangi bir çelişki çıkmaması açısından kullanıcının siteye kayıt yaptırırken girdiği adı-soyadı ve e-mail adresi otomatik olarak form içinde yer alacaktır. Gönderilen bilgiler kontrol edilerek hata yoksa veritabanına işlenir.
Yazar içindir. Kullanıcının kongreye bildiri göndermesi için kullanacağı modüldür. Bir form doldurularak bildiri_kontrol.php sayfasına gönderilir. Burada programda herhangi bir çelişki çıkmaması açısından kullanıcının siteye kayıt yaptırırken girdiği adı-soyadı otomatik olarak form içindeki "yazar adı" bölgesine konulur. Gönderilen bilgiler kontrol edilerek hata yoksa gönderilen bilgiler "gönderilme tarihi" ile birlikte veritabanına işlenir. Gönderilen bildirilerin "hakem" ve "son düzenlenme tarihi" özellikleri default olarak veritabanına "0" değeri ile yazılır.
Yazar içindir. Kullanıcının gönderdiği bildiriyi düzenlemesi için kullanacağı modüldür. Kullanıcıya ait bildiri veritabanından çekilerek aynı form içine bastırılır. Kullanıcı gerekli düzeltmeleri yaparak formu tekrar gönderir ve hata yoksa bilgiler tekrar veritabanına yazılır. Bu modülde veritabanına ayrıca "son düzenlenme tarihi" özelliği de eklenir.
Yönetici bir kullanıcıyı hakem olarak bir bildiriye atarsa o kullanıcı hakem kullanıcı tipini alır ve bildiriye onay verme hakkına erişir. Burada hakemin yetkisindeki bildiri detayları ekrana basılarak kullanıcıdan onay ya da red verme işlemini yapması istenir. Bilgi "onay_tamamla.php" ye gönderilerek bildiri tablosundaki "durum" özelliğine gerekli bilgi atanır. Bildirilerin "durum" özelliği default olarak "0" dır ve bu bekleme durumuna karşılık olarak gelmektedir. "1" onay, "2" reddi belirtmektedir.
Sistemden çıkmak için kullanılır. Çıkma işlemi onaylanırsa session_destroy() ile oturum kapatılırak kullanıcı sistem dışına çıkartılır.
Yöneticinin kullanabileceği modüllerdir. Kayıtlı kullanıcıların, delegelerin, bildirilerin listesini veritabanından çekerek ekrana bastırır. Diğer kullanıcıların kullandığı listeleme modüllerinden farklı olan tarafı yöneticinin delege veya bildiri numarası girerek istediği delege veya bildirinin tüm kayıtlı bilgilerini görebilmesidir.
Yöneticinin bir kullanıcıyı hakem olarak bir bildiriye atamak için kullandığı modüldür. Kullanıcı ve bildiri listeleri ekrana bastırılır ve yöneticiden hangi numaralı kullanıcıyı hangi numaralı bildiriye hakem olarak atamak istediği bilgileri istenir. Bu bilgiler "hakemata_tamamla.php" sayfasına gönderilerek işlem gerçekleştirilir ve veritabanına işlenir.
Yöneticinin bir kullanıcıyı silmek için kullanacağı modüldür. Kullanıcı isim ve numaraları ekrana kullanıcı adlarıyla birlikte bastırılır ve yöneticiden silmek istediği kullanıcın numarası istenir. Bilgi "kullanicisil_tamamla.php" sayfasına gönderilerek veritabanında işlem gerçekleştirilir.
Bir kullanıcı eğer şifresini unutursa bu modülü kullanır. Giriş sayfasından bu modüle ulaşarak e-mail adresini gerekli forma yazarak gönderir. "sifre.php" modülüne gelen bilgi kullanılarak veritabanında ilgili kullanıcıya ait şifre çekilerek kullanıcının e-mail adresine mail() fonksiyonu kullanılarak gönderilir.
Yazılımdan Kesitler Yazılım çalışır halde http://idea.metu.edu.tr/~s07033/proje/KYS/ adresinden incelenebilir. Yazılımın incelenebilmesi amacıyla test kullanıcıları oluşturulmuştur.
Aşağıda http://idea.metu.edu.tr/~s07033/proje/KYS/ girildiğinde ekrana çıkan arayüz görülmektedir. Giriş arayüzü aşağıdaki gibidir.
Aşağıda kayıt arayüzü görülmektedir.
Aşağıda sisteme yönetici olarak giriş yapıldığı zaman alınacak görüntü yer almaktadır. Orta göbek pencerede kullanıcının ismi ve kullanıcı tipi bastırılmaktadır. Solda menü penceresi ve üstteki statik pencere gözükmektedir.
Tüm bu arayüz ve çıktılara programın adresi izlenerek ulaşılabilir. Bütün çıktıları bu belgede vermenin mümkün olmaması nedeniyle yukarıdaki 3 resim örnek olarak seçilmiştir.
Kullanıcı Kılavuzu Kullanıcı kılavuzuna burayı tıklayarak ulaşabilirsiniz.
Kaynaklar - www.php.net - www.phpfreaks.com - www.mysql.com - çeşitli kongre şirket sayfaları |