PGerçekleştirim Belgesi

 

Grafik ve Web Tasarım Çalışmaları
Online Sunum&Satış Portalı
(GSSP)


 

OYLUM BAŞAK SERİN
(ev sayfası)

 

 

Gerçekleştirim Belgesi

 

Yazılım Geliştirme Projesi

Bilgi Teknolojileri Sertifika Programı

İDEA: ODTÜ Sanal Kampüsü
  

 

Tarih

10. 09.2009


Öz

Projenin analiz ve tasarıma uygun olarak gerçekleştirilmesi sağlanamamıştır. Bu belgede karşılaşılan problemler ve gerçekleştirilememe nedenleri yer almaktadır.

Karşılaşılan Sorunlar ve Uygulanan Çözümler

Sisteme üye olma, görsel ekleme, kategorilere göre görsel ekleme gibi ana işlevler gerçekleştirilmiştir. Kategorilere göre arama yapılarak arama sonuçlarının tablolarda gösterilmesi yapılamamış, sadece arama kelimelerine göre arama yapılması sağlanmıştır.

Arama sonuçlarına göre çıkan görsellerin sayfalama metoduyla görüntülenmesi sağlanamamıştır. Arama sonuç gösterim modülü alta doğru uzayan tablo şeklinde gerçekleştirilmiştir.

Yazılımın Bileşenleri ve Görevleri

Veritabanı Yapısı

Tasarım belgesinde verilmiş bulunan veritabanı tasarımında düzenlemeler, ekle ve çıkarmalar yapılmış; veritabanı son haline getirilmiştir. Yazılımda kullanılan veritabanı yapıları ve modüller altta sıralanmıştır.

Kullanıcı tablosu:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(10) CHARACTER SET latin5 NOT NULL,
`sifre` varchar(10) CHARACTER SET latin5 NOT NULL,
`create_date` date NOT NULL,
`Ad` varchar(30) CHARACTER SET latin5 NOT NULL,
`Soyad` varchar(30) CHARACTER SET latin5 NOT NULL,
`Email` varchar(60) CHARACTER SET latin5 NOT NULL,
`tipi` int(11) NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `username` (`username`),
FULLTEXT KEY `username_2` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;

admin tablosu:
CREATE TABLE IF NOT EXISTS `admin` (
`adminID` int(10) NOT NULL AUTO_INCREMENT,
`userID` int(10) NOT NULL,
`sifre` varchar(10) CHARACTER SET latin5 NOT NULL,
`username` varchar(10) CHARACTER SET latin5 NOT NULL,
PRIMARY KEY (`adminID`),
KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

Gorsel tablosu:
CREATE TABLE IF NOT EXISTS `gorsel` (
`gorselid` int(10) NOT NULL AUTO_INCREMENT,
`userid` int(11) NOT NULL,
`keywords` text CHARACTER SET latin5 NOT NULL,
`kategoriID` int(10) NOT NULL,
`realfilename` varchar(2500) CHARACTER SET latin5 NOT NULL,
`filename` varchar(50) CHARACTER SET latin5 NOT NULL,
`filesize` varchar(50) CHARACTER SET latin5 NOT NULL,
`title` varchar(255) CHARACTER SET latin5 NOT NULL,
PRIMARY KEY (`gorselid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;

Kategori tablosu:
CREATE TABLE IF NOT EXISTS `kategori` (
`kategoriID` int(10) NOT NULL AUTO_INCREMENT,
`kategoriAdi` varchar(20) CHARACTER SET latin5 NOT NULL,
PRIMARY KEY (`kategoriID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;

Yorum tablosu:
CREATE TABLE IF NOT EXISTS `yorum` (
`yorumid` int(10) NOT NULL AUTO_INCREMENT,
`userid` int(10) NOT NULL,
`gorselid` int(10) NOT NULL,
`yorumtext` text CHARACTER SET latin5 NOT NULL,
`create_date` datetime NOT NULL,
PRIMARY KEY (`yorumid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;


Modüller

index.php

Giriş arayüzünün yer aldığı modül.

database.php

Bir baglantı fonksiyonu tanımlayıp, sadece bu fonksiyona ihtiyac duyulduğunda veritabanına bağlantı yapılmasını sağlayan veritabanı bağlantı modülü.

<?php
function Baglanti(){
$host = "localhost";
$database = "designers";
$user = "root";
$pass = "oyluko";
$baglanti=mysql_connect("$host", "$user", "$pass") or die ("veritabany ile Ba?lanty Kurulamady");
mysql_select_db("$database") or die ("Veritabany Seçilemedi");
if(mysql_error())
{
echo mysql_error();
}
}
?>

register.php

Yeni üye kaydının yapıldığı modül. aynı zamanda register.php deki formda girilen değerleri kontrol ederek girilen bilgilerin eksiksiz olması durumunda veritabanına bilgileri ekliyor.

loginbox.php

Anasayfada login ve logout işlemleri penceresini yer aldığı modül. Başarılı kullanıcı girişi yapıldığında kullanıcı ad, soyad bilgisini gösteren bir hoşgeldin mesajı basıyor, kullanıcı hesap bilgileri ve logout.php sayfasına yönlendirme yapıyor.

login.php

Kayıtlı kullanıcı girişi bilgilerini girdiği modül.

logincheck.php

Login işleminde girilen bilgilerin doğrulanması için gerekli kodların bulunduğu modül. Login işlemi doğru bir şekilde gerçekleştiğinde "members.php" modülüne geçiş sağlanıyor. Başarısız loginde hata mesajı verir. Session yaratıyor ve diğer tüm kullanıcı girişi gerektiren sayfalarda burada atadığı değişkenleri kontrol ediyor.

$_SESSION['designercont']=$pass.date("YmdHis");
$_SESSION['isim']=$kul_detay["Ad"]." ".$kul_detay["Soyad"];
$_SESSION['kullaniciAdi']=$kul_detay["username"];
$_SESSION['userid']=$kul_detay["id"];

logout.php

Kullanıcı çıkışı yapılan, session_destroy(); komutu ile oturumu kapatan modül.

upload.php

Görsel, keyword, kategori, başlik ekleme modülü. Dosya bilgisayardaki herahngi bir klasörden seçiliyor, kategoriler veritabanındaki kategori tablosundan çağrılıyor ve uygun kategori seçiliyor. form uploadfile_ac.php dosyasına yönlendiriliyor.

uploadfile_ac.php

upload.php dosyasında girilen bilgiler alınarak gorsel veritabanına ekleniyor. Eklenen gorsel upload klasöründe kategoriID, insert id ve userid sıralamasına uygun olarak kaydediliyor.

$ekle=mysql_query("INSERT INTO `gorsel` (`userid`,`keywords`,`kategoriID`,`title`) VALUE ('$_SESSION[userid]','$_POST[keyword_ekle]', '$_POST[kategori_sec]', '$_POST[baslik_ekle]')");
$referans=mysql_insert_id();
$referans2=$_POST['kategori_sec']."_".mysql_insert_id()."_". $_SESSION['userid'] ;
$dosyaadi=mysql_query("UPDATE gorsel SET filename='$referans2' WHERE gorselid='$referans'");
$size=$_FILES["file"]["size"] / 1024;
$dosyaboyutu=mysql_query("UPDATE gorsel SET filesize='$size' WHERE gorselid='$referans'");

profile.php

Kullanıcı kontrol panelinden yapabileceği işlemlere yönlendiriliyor. Bu işlemler; "Kullanıcı Bilgilerimi Göster, Kullanıcı Bilgilerimi Güncelle, Şifre değiştir, Görsel Görüntüle, Görsel Ekle, Görsel Sil"

myphotolist.php

Kullanıcının kendi görsellerini görüntülediği modül. logincheck.php de yaratılan session userid numarasını alarak hangi kullanıcının secildiğini buluyor.

<a href="photolist.php?id=<?php echo $_SESSION['userid'];?>" target="_top">&gt;&gt; Görsellerimi görüntüle</a>

photolist.php

Kullanıcının diğer kullanıcıların görsellerini görüntülediği modül. Mutalaka bir arama sonucundan ya da kategori seçimi sonucundan yönlenerek bu sayafaya gidilir.

photodetail.php

Görselin daha büyük bir versiyonunu gösteren, görselin kim tarafından ne zaman yüklendiğini gösteren ve o kullanıcının diğer tüm görsellerine ulaşan linki veren arayüzdür. Ayrıca fotoğrafın üzerine tıklanması halinde ayrı bir pencerede fotoğrafın tam boyunu görüntülemek mümkündür. Bu arayüzde aynı zamanda fotoğraf için yapılan yorumlar da yer almaktadır.

comment.php

Görselin detayli incelendiği photodetail.php bölümünden "yorumekle" linki ile ulaşılan, yorum ekleme formunun yer aldığı bölümdür. Form parametre olarak görsel idsini alır, session bilgisinden kullanıcı id sini alir ve yorumu bu şekilde yorum tablosuna işler. Bir yorumu görüntülemek için o yorumun görselid si ile yorumu yapan kullanıcının id sinden faydalanılır.

comment_ac.php

Yorum ekleme sorgularının çalıştırıldığı modüldür.

photodelete.php

Kullanıcının kendi görsellerini altında "görsel sil" seçeneği ile gösteren modül. photodele_ac.php ye yönleniyor.

photodelete_ac.php

Kullanıcının kendi görsellerini altında "görsel sil" seçeneği ile gösteren modül. photodele_ac.php ye yönleniyor.

$id = $_GET['id'];
$del = mysql_query("DELETE FROM `gorsel` WHERE gorselid='$id'");

showinfo.php

Kullanıcının bilgilerini gösteren modül.

editinfo.php

Kullanıcının Ad, soyad, email bilgisini güncellemesi için girilen formun bulunduğu modül.

editinfo_ac.php

Güncelleme işlemini UPDATE SET komutu ile gerçekleştiren modül.

changepass.php

Kullanıcının şifre değiştirmek için şifresini alan modül.

changepass_ac.php

Şifre değiştirme işlemini UPDATE SET komutuyla gerçekleştiren modül.

leftmenu.php

Kategori tablosundan kategori isimlerini çekerek , categories.php linki üzerinden seçilen kategorinin açılmasını sağlayan modül.

<?php
while($category_row = mysql_fetch_array($category_result))
{
?>
<li><a href="categories.php?id=<?php echo $category_row['kategoriID']; ?>" target="_top"><?php echo $category_row['kategoriAdi']; ?></a></li>
<?php
}
?>

categories.php

leftmenu.php den gelen kategoriid sini alarak, o kategoriye ait görselleri ekrana tablo içinde bastıran modül. Aynı zamanda görsellerin altında hangi kullanıcıya ait olduklarını içeren kullanıcı bilgisi de mevcut.

search.php

Arama kutusunun yer aldığı modül.

photolist_srch.php

Kelime girilerek görsel tablosu içinde arama yapan, keywords sütununda buldugu arama kelimelerine ait görselleri tablo şeklinde bastıran modül.

ÖNEMLİ NOT: ARAMA KUTUSUNDA KATEGORİ SEÇİMİ BUTONLARI OLMASINA RAĞMEN ŞU ANDA ARAMA KATEGORİLERE GÖRE YAPILAMAMAKTADIR.

myphotolist.php

Kullanıcının kendi görsellerini görüntülediği modüldür.

admin.php

Kategorilerin ve kullanıcıları yönetildiği modüle giriş arayüzü.

adminpanel.php

Admin girişi yapıldıktan sonra çıkan karşılama arayüzü. Sol menüdeki seçeneklerle istenilen işlevlerin yerine getirilmesi sağlanır.

adminheader.php

admin.php içinde yer alan, içinde yi barındıran header modülü.

adminloginbox.php

Admin sayfasında login ve logout işlemleri penceresini yer aldığı modül. Başarılı admin girişi yapıldığında admin ad, soyad bilgisini gösteren bir hoşgeldin mesajı basıyor ve logout.php sayfasına yönlendirme yapıyor.

adminlogincheck.php

Login işleminde girilen bilgilerin doğrulanması için gerekli kodların bulunduğu modül. Login işlemi doğru bir şekilde gerçekleştiğinde "members.php" modülüne geçiş sağlanıyor. Başarısız loginde hata mesajı verir. Session yaratıyor ve diğer tüm kullanıcı girişi gerektiren sayfalarda burada atadığı değişkenleri kontrol ediyor.

$_SESSION['admincont']=$pass.date("YmdHis");
$_SESSION['isim']=$admin["username"];
$_SESSION['userid']=$admin["adminID"];

adminlogout.php

Admin çıkışı yapılan, session_destroy(); komutu ile oturumu kapatan modül.

manageusers.php

Admin girişi yapıldıktan sonra kullanıcıları listeleyen, sil seçeneği sunarak kullanıcı silmeyi sağlayan modül.

deleteusers.php

Admin tarafından seçilen kullanıcıyı users tablosundan silen modül.

managecategories.php

Admin girişi yapıldıktan sonra kategorileri listeleyen, ekle, güncelle ve sil seçenekleri sunan modül.

deletecategories.php

Admin tarafından seçilen kategoriyi kategori tablosundan silen modül.

managecomments.php

Admin girişi yapıldıktan sonra yorumları listeleyen, yorumu ve yorumun yapıldığı görseli gösteren ve sil seçeneği sunan modül.

deletecomments.php

Admin tarafından seçilen yorumu kategori tablosundan silen modül.

addcategories.php

Admin tarafından kategori tablosuna yeni kategori adi ekleyen modül.

editcategories.php

Admin tarafından seçilen kategorinin adini kategori tablosunda değiştiren modül.

addcategories_ac.php

Admin tarafından kategori tablosuna yeni kategori adi ekleyen modülün bilgilerini kontrol ederek ekleme işlemini yapan modül.

editcategories_ac.php

Admin tarafından seçilen kategorinin adini kategori tablosunda değiştiren modülün bilgilerini kontrol ederek değiştirme işlemini yapan modül.

footer.php

Son güncelleme tarihi bilgisini barındıran, her sayfada tekrarlanan modül.

iletisim.php

Gonderen, konu ve mesaj bölümlerini içeren mail formu modülü.

sendmail.php

Formdan getirilen bilgileri alarak mail() fonksiyonu ile belirtilen e-mail adresine gönderen mail gönderme modülü.

Yazılımdan Kesitler

1. Anasayfa - giriş arayüzü:

2. Arama yapılınca çıkan sonuçları gösteren arama modül arayüzü:

3. Login olmuş kullanıcı için arama modülü arayüzü:

4. Görsel ekleme modülü arayüzü:

5. Kullanıcı profili arayüzü:

6. Kullanıcı profili detaylı görünüm arayüzü:

7.Admin giriş arayüzü:

8. Admin, kategori yönetme arayüzü:

9. Admin, kullanıcı yönetme arayüzü:

Kullanıcı Kılavuzu

Kullanıcı kılavuzu henüz tamamlanmamıştır.