Header image  
idea.metu.edu.tr  
line decor
  
line decor
 
 
 
 

 
 
  • Gerçekleştirim

    Online Şirket Faaliyet İzleme ve Yönetim Sistemi

    -Öz
    -Karşılaşılan Sorunlar ve Uygulanan Çözümler
    -Kodlama Esnasında Fark edilen Eksiklikler
    -Yazılımın Bileşenleri ve Görevleri
    -Modüller
    -Yazılımdan Kesitler
    -Kullanım Kılavuzu

     

    Coşkun KARACA

    Özgeçmiş

     

     

    Tasarım Belgesi

    Yazılım Geliştirme Projesi

    Bilgi Teknolojileri Sertifika Programı

    İDEA: ODTÜ Sanal Kampüsü

     

    Tarih
    20 Haziran 2008


     

    Öz

    Gerçekleştirim evresinde proje, tasarım ve analiz belgelerinde verilmiş olan kriterlere büyük ölçüde bağlı kalınarak kodlanmış ve proje teklifi aşamasından itibaren ortaya konan tüm taahhütler kodlamada eksiksiz olarak yerine getirilmeye çalışılmış ancak projenin büyüklüğü sebebiyle bazı modüllerde halen kodlama çalışmaları sürmektedir. Ayrıca Kullanıcı kılavuzu hazırlanmış ve yazılım bileşenleri açıklanmıştır.

     




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

    Projenin amacını ve sonucunu etkileyecek önemli bir problemle karşılaşılmamıştır. Ancak, kodlama esnasında dikkat çeken eksiklikleri gidermek ve kodun okunurluğunu artırmak amacıyla bazı değişiklikler yapılmıştır. Bu değişiklikler şunlardır:

    Özellikle tasarım belgesinde tanımlanan veri tablolarında tekrarlanan bilgilerin varlığı tespit edilmiş ve normalizasyonla bu tablolar veri kaybı yaşanmadan sadeleştirilmiştir.

    Ayrıca programın çok fazla kullanıcı tarafından kullanılacak olması yetki problemleri çok fazla birim bulunması oldukça karmaşık bir kullanıcı yönetimine ihtitaç duyulduğunu göstermiş ve yazılım gerçekleştirimi esnasında bu konuda oldukça zaman kaybedilmesine neden olmuştur.

    Zaman zaman neden kaynaklandığına anlam verilemeyen sorunlarla karşılaşılmış MD5 şifrelemeyle VT de saklanan ve daha sonra değerlendirilmeye çalışılan kodda sıkıntılar yaşanmış bu durum forumda da tartışılmıştır. Ancak henüz çözüme kavuşmamıştır. Hocamızla yapılan görüşmede yazılan kodda hata olmadığı belirtilmiştir. Bu durumun araştırılmasına devam edilmektedir.

    Sistemde genel olarak tüm modüllerde veri girişi , son girilen verilerin bir kısmı ve ilgili verilere ait sorgulama menüleri aynı sayfa içerisinde verilmeye çalışılmıştır. İleride sorgulama menüleri çok daha gelişkin ve kullanışlı hale getirilecektir.

    Yazılımın büyüklüğü nedeniyle bir takım yazılım araçlarının kullanılmasını zorunlu kılmıştır. Tasarım belgesinde de belirtildiği üzere kod geliştirimi ve arayüz tasarımında Macromedia Dreamweaver programından büyük ölçüde yararlanılmaktadır.


     

    Kodlama Esnasında Fark Edilen Eksiklikler

    Kodlama esnasında fark edilen ancak zaman kısıtlılığı ve tasarımda yer almaması nedeniyle sonraya bırakılan bazı eksiklikler şunlardır:

    Zaman içinde veritabanının çok büyüyeceği ve sistem performansını olumsuz etkileyeceği düşünülerek, sistem yöneticisine veritabanına bakım yaptıracak bir fonksiyonun yazılması gerektiği görülmüştür.

    Zaman zaman birimlerin birbirlerinin bazı bilgilerine ulaşmalarını sağlayacak bir yapının faydalı olacağı görülmüş ancak daha sonraki versiyonlarda bunun uygulanabileceği kararına varılmıştır.

    Sistemi kullanmabilmek için admin tarafından tanımlanmış ve şifresi verilmiş olan kullanıcıya şifresini değiştirmesi için henüz bir izin verilmemiştir. Programın kullanılacağı yerin kamu olması böyle bir ihtiyaca gerek olup olmadığınıda şüpheli hale getirmektedir.

    İhtiyaç duyulan yazılım elektrik dağıtımı gibi dinamik bir yapıda sürekli olarak değişebilmelidir. Bu yapının dinamik oluşunun sebepleri olacak olan abone davranışları, malzeme değişklikleri, teknolojik gelişimler ve mevzuat değişiklikleri bu yazılımın sürekli güncellenmesi gerektiğini ortaya koymaktadır. Bu dinamik parameterelerin bir kısmının yazılıma formülüze edilerek parametre olarak aktarılmasının mümkün olabileceği ancak bazılarının yazılıma sürekli ilaveler yada güncellemeler yapılarak çözülebileceği görülmüştür.

     


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

    Veritabanı Yapısı

    Tasarım belgesinde verilmiş bulunan veritabanı tasarımına genel hatlarıyla bağlı kalınmış ancak, bazı tablolarda değişiklikler yapılmıştır.

    CREATE TABLE birim (
    idbirim INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    birimadi VARCHAR(45) NOT NULL,
    ilcesi VARCHAR(45) NULL,
    ili VARCHAR(45) NULL,
    sorumlu VARCHAR(45) NULL,
    telefon TINYTEXT NULL,
    faks TINYTEXT NULL,
    PRIMARY KEY(idbirim, birimadi)
    );

    CREATE TABLE trafoTesisleri (
    idtesis INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    birimi VARCHAR(45) NOT NULL,
    trafoAdi VARCHAR(45) NULL,
    gucu INTEGER UNSIGNED NULL,
    kabulTarihi DATE NULL,
    yuklenicisi VARCHAR(45) NULL,
    yerleskeAdi VARCHAR(45) NULL,
    PRIMARY KEY(idtesis, birimi)
    );

    CREATE TABLE enhTesisleri (
    idenhTesisleri INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    birimi VARCHAR(45) NULL,
    enhAdi VARCHAR(45) NULL,
    tertibi VARCHAR(45) NULL,
    kabulTarihi DATE NULL,
    yuklenicisi VARCHAR(45) NULL,
    yerleskeAdi VARCHAR(45) NULL,
    PRIMARY KEY(idenhTesisleri)
    );

    CREATE TABLE olcumler (
    idolcumler INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    tarih DATE NULL,
    trafoAdi VARCHAR(45) NULL,
    R INTEGER UNSIGNED NULL,
    S INTEGER UNSIGNED NULL,
    T INTEGER UNSIGNED NULL,
    yuklenmeOrani INTEGER UNSIGNED NULL,
    aciklama VARCHAR(255) NULL,
    PRIMARY KEY(idolcumler)
    );

    CREATE TABLE dmkokTesisleri (
    iddmkokTesisleri INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    birimi VARCHAR(45) NULL,
    dmkokAdi VARCHAR(45) NULL,
    dahtrGucu INTEGER UNSIGNED NULL,
    kabulTarihi DATE NULL,
    yuklenicisi VARCHAR(45) NULL,
    yerleskeAdi VARCHAR(45) NULL,
    PRIMARY KEY(iddmkokTesisleri)
    );

    CREATE TABLE ekipler (
    idekipler INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    ekipKodu VARCHAR(45) NULL,
    ekipBirimi VARCHAR(45) NULL,
    eleman1 VARCHAR(45) NULL,
    eleman2 VARCHAR(45) NULL,
    eleman3 VARCHAR(45) NULL,
    eleman4 VARCHAR(45) NULL,
    eleman5 VARCHAR(45) NULL,
    eleman6 VARCHAR(45) NULL,
    PRIMARY KEY(idekipler)
    );

    CREATE TABLE harcananMalzemeler (
    idmalzemeler INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    malzemeAdi VARCHAR(85) NULL,
    miktar INTEGER UNSIGNED NULL,
    tipi VARCHAR NULL,
    faaliyetNo INTEGER UNSIGNED NULL,
    PRIMARY KEY(idmalzemeler)
    );

    CREATE TABLE isletmeFaaliyet (
    idisletmeFaaliyet INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    tarih DATE NULL,
    birimi VARCHAR(45) NULL,
    enhTesisi VARCHAR(45) NULL,
    trafoTesisi VARCHAR(45) NULL,
    dmkokTesisi VARCHAR(45) NULL,
    ekip VARCHAR(45) NULL,
    malzeme INTEGER UNSIGNED NULL,
    aciklama VARCHAR(255) NULL,
    faaliyetCinsi VARCHAR(45) NULL,
    PRIMARY KEY(idisletmeFaaliyet)
    );

    CREATE TABLE kullanici (
    idkullanici INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    kullaniciAdi VARCHAR(20) NULL,
    kullaniciSifre INTEGER UNSIGNED NULL,
    birimi VARCHAR(45) NULL,
    yetkisi INTEGER UNSIGNED NULL,
    sicilNo VARCHAR(20) NULL,
    PRIMARY KEY(idkullanici)
    );

    CREATE TABLE personel (
    sicilNo VARCHAR(20) NOT NULL,
    adi VARCHAR(20) NULL,
    soyadi VARCHAR(20) NULL,
    girisTarihi DATE NULL,
    egitimi VARCHAR(20) NULL,
    meslek VARCHAR(45) NULL,
    tipi VARCHAR(20) NULL,
    aciklama VARCHAR(255) NULL,
    fotograf VARCHAR NULL,
    PRIMARY KEY(sicilNo)
    );

    CREATE TABLE persoenelHareketleri (
    ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    sicilNo VARCHAR(20) NULL,
    tarih DATE NULL,
    birimi VARCHAR(45) NULL,
    durumu VARCHAR(20) NULL,
    gorevi VARCHAR(45) NULL,
    PRIMARY KEY(ID)
    );

    CREATE TABLE projeler (
    idprojeler INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    tarih DATE NULL,
    projeNo VARCHAR(20) NULL,
    kesfi INTEGER UNSIGNED NULL,
    tanimi VARCHAR(255) NULL,
    yeri VARCHAR(45) NULL,
    tipi VARCHAR(20) NULL,
    durumu VARCHAR(20) NULL,
    PRIMARY KEY(idprojeler)
    );

    CREATE TABLE projeOdenekHarcamalar (
    idprojeHarcamalar INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    projeNo VARCHAR(20) NULL,
    tarih DATE NULL,
    islem VARCHAR(20) NULL,
    miktar INTEGER UNSIGNED NULL,
    PRIMARY KEY(idprojeHarcamalar)
    );

    CREATE TABLE projeIhaleler (
    idprojeIhaleler INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    projeNo VARCHAR(20) NULL,
    ihaleNo VARCHAR(20) NULL,
    firma VARCHAR(45) NULL,
    sozlesmeTarihi DATE NULL,
    sozlesmeBedeli INTEGER UNSIGNED NULL,
    PRIMARY KEY(idprojeIhaleler)
    );

    CREATE TABLE projeIhaleDurumu (
    idprojeIhaleDurumu INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    tarih DATE NULL,
    ihaleNo VARCHAR(20) NULL,
    harcama INTEGER UNSIGNED NULL,
    fizikiGerceklesme INTEGER UNSIGNED NULL,
    PRIMARY KEY(idprojeIhaleDurumu)
    );

    CREATE TABLE enerjiMusadesi (
    idenerjiMusadesi INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    tarih DATE NULL,
    musadeGucu INTEGER UNSIGNED NULL,
    talepSahibi VARCHAR(45) NULL,
    yeri VARCHAR(45) NULL,
    fenniMesul VARCHAR(45) NULL,
    PRIMARY KEY(idenerjiMusadesi)
    );

    CREATE TABLE bimkkEnerjiler (
    idbimkkEnerjiler INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    donemi DATE NULL,
    olcumYeri VARCHAR(45) NULL,
    aktifGunduz INTEGER UNSIGNED NULL,
    aktifPuant INTEGER UNSIGNED NULL,
    aktifGece INTEGER UNSIGNED NULL,
    raktifGunduz INTEGER UNSIGNED NULL,
    raktifPuant INTEGER UNSIGNED NULL,
    raktifGece INTEGER UNSIGNED NULL,
    aciklama VARCHAR(255) NULL,
    PRIMARY KEY(idbimkkEnerjiler)
    );

    CREATE TABLE bimkkTablolar (
    idbimkkTablolar INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    donemi VARCHAR(20) NULL,
    alinanKwh INTEGER UNSIGNED NULL,
    birimMaliyet FLOAT NULL,
    tahakkuk INTEGER UNSIGNED NULL,
    tahsilat INTEGER UNSIGNED NULL,
    kesim INTEGER UNSIGNED NULL,
    baglama INTEGER UNSIGNED NULL,
    kalinti INTEGER UNSIGNED NULL,
    tarananAbone INTEGER UNSIGNED NULL,
    yakalananKacak INTEGER UNSIGNED NULL,
    savcilik INTEGER UNSIGNED NULL,
    PRIMARY KEY(idbimkkTablolar)
    );

    CREATE TABLE bimkkSayaclar (
    idbimkkSayaclar INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    sayacKodu VARCHAR(20) NULL,
    yonu VARCHAR(20) NULL,
    kayitTarihi DATE NULL,
    ili INTEGER UNSIGNED NULL,
    adi VARCHAR(45) NULL,
    sayacSeriNo VARCHAR(20) NULL,
    PRIMARY KEY(idbimkkSayaclar)
    );

    Modüller

    loginPage.php
    Kullanıcının giriş yapacağı ana sayfa
    menupage.php
    Kullanıcı başarılı olarak sisteme girdiğinde yönlendirileceği sayfa.Bu sayfadan yetkisi doğrultusunda seçim yapar.
    admin.php
    Yeni kullanıcı ekleme işlemleri yapılır
    admin2.php
    Birim ekleme işlemleri yapılır
    isletmeFaaliyet.php İlçe işletmelerin günlük faaliyetlerini girdiği modül
    isletmeFaaliyet2.php
    İlçe işletmelerin trafo ölçüm sonuçlarını girdikleri modül
    isletmeFaaliyet3.php
    İlçe işletmelerin faaliyetlerinin sorgulandığı modül
    isletmeFaaliyet4.php
    İlçe işletmelerin sorunlarının çözümüne yönelik olarak yatırım tekliflerini sundukları modül
    proje.php
    Yeni proje kaydının yapıldığı modül
    proje2.php
    Proje tesis bünyesinde yapılan harcamaların ve ödeneklerin takip edildiği modül
    proje3.php
    Proje tesisin yaptığı ihalelerin girildiği ve takip edildiği modül
    proje4.php
    Enerji müsadelerinin verildiği ve takip edildiği modül
    bimkk.php
    Dönemsel bilgilerin girildiği ana tablo modülü
    bimkk2.php
    Satın alınan enerjiye ait ölçüm bilgilerinin giriş modülü
    personel.php
    Yeni personel kaydının yapıldığı ve izlendiği modül
    personel2.php
    Personel görevlendirmelerinin takip edildiği ve veri girişi yapılan modül

     

     


     

    Yazılımdan Kesitler


     

     

     


    Kullanıcı Kılavuzu

    Yazılımın Amacı:

    Bu yazılım, elektrik dağıtım şirketlerinin faaliyetlerini takip ve kontrol etmek amacıyla gerçekleştirilmiştir.

    Çalışma Platformu:

    Yazılım web tabanlı olup yaygın tüm browserlarla uygulama çalıştırılabilir.

    Sitenin Özellikleri ve Becerileri:

    1. Genel olarak sitenin şık bir tasarıma ve kolay kullanıma sahip olması düşünülmüştür. Herhangi bir kullanıcının login olduktan sonra ilgili içeriğe ulaşması oldukca kısa sürecektir.
      Sistem yöneticisi tarafından gerçekleştirilecek işlemler(VT bakımı ve düzenlemeleri hariç) tamamen internet üzerinden yapılmaktadır.
      Sistemde genel olarak tüm modüllerde veri girişi , son girilen verilerin bir kısmı ve ilgili verilere ait sorgulama menüleri aynı sayfa içerisinde verilmeye çalışılmıştır. İleride sorgulama menüleri çok daha gelişkin ve kullanışlı hale getirilecektir.
    2. Sistemi kullanmabilmek için admin tarafından kullanıcı tanımlanmış ve şifresi verilmiş olmalıdır.
    3. Kullanıcı şifresini girdikten sonra login olacak ve menulerin bulunduğu sayfaya yönlenecektir. Şifresini yada kullanıcı ismini yanlış giren kullanıcı sistem tarafından reddedilecek ve tekrar login sayfasına dönülecektir.
    4. Menü sayfasına ulaşan kullanıcı yetkisi doğrultusunda kendisini ilgilendiren linke tıklayarak istediği işlemleri yapabilir. Yetkisi olmayan bir sayfaya erişim isteğinde , kullanıcı tekrar   menü sayfasına yönlendirilir.
    5. Kullanıcının önüne gelen sayfadaki açıklamalarla gerekli veri girişlerini ve sorgulamaları yapabilecek kadar sistem açık ve basit tasarlanmıştır.

     

    Yazılımın Özellikleri:

    Yazılım, internet kullanılabilen herhangi bir makinada sorunsuz olarak kullanılabilir.

     

     

     
     
     Projenin süreçleri yandaki linklerden takip edilebilir.