PTasarım Belgesi

 

Müşteri İlişkileri Yönetimi (CRM)

 

Semih Sami ASLANKESER, Ömer Oktay YILDIZELİ,
Pelin KURUÇAY ERCAN, Ferdi ŞAKİROĞLU

 

 

Tasarım Belgesi

Yazılım Geliştirme Projesi

Bilgi Teknolojileri Sertifika Programı

İDEA: ODTÜ Sanal Kampüsü
  

 

Tarih 14.05.2015



Öz


Amaç, proje analizi raporunda anlatılan Müşteri İlişkileri Yönetimi(CRM) projesinin ayrıntılı olarak ( işbirliği diyagramları (çalışan ve yönetici),statik yapı diyagramı, varlık-ilişki (ER)diyagramı, veri sözlüğü, kontrol akış şeması ve uygulama takvimi) bu raporda detaylandırmaktır.

Kapsam

Kullanıcı (çalışan ve yönetici) isterleri ve hedefleri: Yazılımın hedefi, web sitesinin kullanıcılar tarafından kolay anlaşılabilir ve kullanılabilir şekilde tasarlanmasıdır. Analiz Belgesi'nde sunulan mimari tasarıma bağlı kalınmıştır. Tasarımda, özellikle müşteri ilişkileri yönetim sistemini başlıca isteri olan ürün , sipariş, müşteri, aktivite modüllerinin kullanıcılara paylaştırılması, zaman ve kaynak tasarrufu sağlanması amaçlanmaktadır.
Tasarım sınırlandırmaları: Projede,sunucu tabanlı web uygulaması oluşturmak için ihtiyacımız olan tüm hizmetleri sağlayan bir web platformu Microsoft ASP.Net kullanacağız. ASP.Net platformuna uyumlu olan Microsoft Information Services (IIS) kullanarak, MS Sql ve Linq sorguları ve Ajax etkileşimi ile projemizi gerçekleyeceğiz. Tüm bunlarla birlikte tasarım aşamasında görsel işlevlerin kolay bir şekilde oluşturulması(sürükle-bırak) ancak sorgu işlevlerinin karmaşıklığı ön planda tutulmaktadır.

Mimari Tasarım

Her bir sistem kullanıcısı için işbirliği diyagramı :



















Veri Tasarımı

Veri tasarımında nesne yönelimli strateji benimsenmiş ve Windows uyumlu olması nedeni ile MSSQL Veri Tabanı Sunucusunda uygulanması planlanmıştır.







Veri Sözlüğü

Dosya adı

Alan Adı Veri Tipi Uzunluk Açıklama
login l_id * (pk) int   Kullanıcı id
  saltkey int   Kullanıcı şifresi anahtarı
  username nvarchar 50 Kullanıcı adı
  password nvarchar max Kullanıcı şifresi
  lastsession datetime   Son erişim tarihi
workers w_id * (pk) int   Çalışan id
  w_name nvarchar 50 Çalışan ad
  w_surname nvarchar 50 Çalışan ad
  w_phone int   Çalışan tel
  w_mail nvarchar 100 Çalışan mail
  permission int   Çalışan yetki izni
department d_id *(pk) int   Departman id
  d_name nvarchar 50 Departman adı
customers c_id *(pk) guid   Müşteri id
  firmname nvarchar max Müşteri adı
  fkeywords nvarchar 50 Müşteri anahtar kelimeleri
  c_address nvarchar 50 Müşteri adresi
  c_pk int   Müşteri posta kodu
  c_city nvarchar 50 Müşteri şehir
  c_country nvarchar 50 Müşteri ülke
  c_phone int   Müşteri tel
  c_fax int   Müşteri faks
  c_mail nvarchar 100 Müşteri mail
  c_web nvarchar 100 Müşteri web sayfası
  c_tax_number int   Müşteri vergi numarası
products p_id *(pk) int   Ürün id
  p_name nvarchar Max Ürün adı
  p_description text   Ürün tanımı
  p_keywords nvarchar Max Ürün anahtar kelimeleri
  p_price int   Ürün fiyatı
  p_unit nvarchar 50 Ürün cinsi
  p_isStock float   Ürün stokta var mı
  p_stock_value int   Ürün stok bilgisi
orders o_id *(pk) int   Sipariş id
  o_date date   Sipariş tarihi
  o_status nvarchar 50 Sipariş durumu
  o_isaccept float   Sipariş onayı
  o_unit nvarchar 50 Sipariş cinsi
  o_description text   Sipariş tanımı
  o_finishedTime datetime   Sipariş teslim edildiği tarih
  o_establishedTime datetime   Sipariş teslim edileceği öngörülen tarih
aktivity a_id *(pk) int   Aktivite id
  o_subject nvarchar 100 Aktivite konusu
  a_time int   Aktivite saati
  a_important int   Aktivite önem derecesi
  a_date datetime   Aktivite tarihi
  a_note text   Aktivite notları
important i_id *(pk) int   Önem id
  i_name nvarchar   Önem adı

NOT:: “ * (pk) “ Primary Key (Birincil Anahtar)






İlişki Diyagramı

Arayüz Tasarımı

Arayüz tasarımında kullanılacak nesne ve modüller şunlardır:

  • Veritabanı nesnesi (Tüm veritabanı işleri) -- "DB_.cs"
    • Değişkenler:
      • ConnectionString (crm_DB_connection_str)
      • Kullanıcı adı , şifre ve veritabanı ismi ; ConnectionString içerisine doğrudan yazılacak ve "crm_DB_connection_str" LINQ bağlantısında çağırılıcaktır.
      • Veritabanı içerik (DataClassesDataContext) $ _da

      NOT : Tek tek değişken tanımlanması gereği LINQ ile azaltılmaktadır.Wizard ile bağlantı kısmı yapılıp mapping ve caching işlemlerinin ardından , Entity Framework veya FluentNHibernate kullanılmasıda tartışılmaktadır.Bu yüzden , gerekli tüm host ve veritabanı bağlanma değişkenleri bu $_da değişkeninden sağlanabilecektir.
    • Fonksiyonlar
      • Class (GetData.cs)
      • IQueryable GetWorkerData(string gd)
      • IQueryable GetAdminData(string gd_adm)
      • IQueryable GetCustomerData(string gd_cus)
      • IQueryable GetProductsData(string gd_prod)
      • IQueryable GetOrderData(string gd_ord)
      • IQueryable GetImportantData(string i_id)
      • IQueryable GetDepartmentData(string d_id)
      • IQueryable GetLoginData(string lid,string user_name,string password,int saltkey)
      • function Close();
      • function Caching();
      • function Repleacer();
      • function DB_log();
      • function Security_DB();

       


  • Çalışan tablo ve alanları(Veritabanı işleri)-- "CRUD_db_all.cs"
    • Fonksiyonlar ve Değişkenler :
      • SetWorkerData(string w_name, int w_phone, string w_surname, string w_mail, int wid, int permission, int d_id,int cid)
      • UpdateWorkerData(string w_name, int w_phone, string w_surname, string w_mail, int wid, int permission, int d_id,int cid)
      • DeleteWorkerData(int wid)

  • Müşteri tablo ve alanları(Veritabanı işleri)-- "CRUD_db_all.cs"
    • Fonksiyonlar ve Değişkenler :
      • SetCustomerData(guid cid (*otomatik olarak oluşturan bir NewGuid() fonksiyonu olabilir),string firmname,string fkeywords,string address,int c_pk,int c_city,int c_country,int c_phone,int c_fax,string c_mail,string c_web,int c_tax_number)
      • UpdateCustomerData(guid cid (*otomatik olarak oluşturan bir NewGuid() fonksiyonu olabilir),string firmname,string fkeywords,string address,int c_pk,int c_city,int c_country,int c_phone,int c_fax,string c_mail,string c_web,int c_tax_number)
      • DeleteCustomerData(guid cid)

  • Ürünler tablo ve alanları(Veritabanı işleri)-- "CRUD_db_all.cs"
    • Fonksiyonlar ve Değişkenler :
      • SetProductsData(int p_id,string p_name,string p_description,string p_keywords,int p_price,int unit_id ,int is_stock)
      • UpdateProductsData(int p_id,string p_name,string p_description,string p_keywords,int p_price,int unit_id ,int is_stock)
      • DeleteProductsData(int p_id)

     

  • Sipariş tablo ve alanları(Veritabanı işleri)-- "CRUD_db_all.cs"
    • Fonksiyonlar ve Değişkenler :
      • SetOrderData(int oid,DateTime o_date,guid c_id,int wid,string o_status,int o_isAccepted,int p_id)
      • UpdateOrderData(int oid,DateTime o_date,guid c_id,int wid,string o_status,int o_isAccepted,int p_id)
      • DeleteOrderData(int oid)

       

  • Aktivite tablo ve alanları(Veritabanı işleri)-- "CRUD_db_all.cs"
    • Fonksiyonlar ve Değişkenler :
      • SetActivityData(int a_id,string a_subject,int cid,int wid,int a_time,int a_important,DateTime a_date,string a_notes)
      • UpdateActivityData(int a_id,string a_subject,int cid,int wid,int a_time,int a_important,DateTime a_date,string a_notes)
      • DeleteActivityData(int a_id)

       

  • Bunlara ek olarak "important" ve "department" adlı tablolar için yazılan fonksiyon ve değişkenler :
      • SetImportantData(int i_id,string i_name)
      • DeleteImportantData(int i_id)
      • SetDepartmentData(int d_id,string d_name)
      • DeleteDepartmentData(int d_id)

     

  • Login işlemi için olası muhtemel fonksiyon ve değişkenler :
      • Check_session(string usrname,string pssword,int saltkey);
      • function salt_cryption(string usrname_oper,string password_oper,int saltkey)
      • encoding();
      • repleacer(string usr_inpt,string pss_inpt);
      • logClss();
  • Log - Error - Mail işlemi için olası muhtemel fonksiyon ve değişkenler :
      • SendMail(string errortime,string remoteip,string errormsg,string errorcontent)
      • const string toAdress;
      • var MailMessage;
      • var SmtpClient;
      • _sc.Send(_mm);
  •  

  • Crm Mail sistem değişken ve fonksiyonlar
      • SendContactMail(string _name, string remoteip, string _mail)

       

  • Replace fonksiyon ve değişkenleri :
      • BackReplace(string getTxt);
      • Regex.Replace <<

       

  • Search All
    • SearchReplace(string getKeywords,int cat);

     

  • !opsiyonel Rating System :
      • string[] GetCompletionList(string prefixText, int count)
      • [ScriptMethod(ResponseFormat = ResponseFormat.Json)] [WebMethod]
      • LoginSpecial(string rate, string guid);
  • !opsiyonel Captcha :
    • string RandomString(int loop);
    • string randStr (random string)
    • Session["capRand"]
    • Bitmap bmp
    • Graphics g

     

  • !opsiyonel Encoding (Resim ve grafiklerin kopyalanmasını ve kaynak kodları saklamak için.)
      • EncodeFile(string fileName)
  • CRUD işlemleri için gerekli sayfalar :
  • NOT : Bu sayfalar ayrı ayrı olmayıp bir "MultiView" kontrolüne "View" eklenerek tek bir sayfa üzerinden session kontolüne göre üstteki classlar çağırılarak yada QueryString ile ilgili parametre (id) döndürülerek düzenlenmesi düşünülmektedir. İkinci fikir olarak ayrı bir sayfa üzerine Default.aspx üzerinden sessiona göre ilgili kısımların sınırlanması söz konusu olabilir.
  • GENEL TASARIM php'den farklı olarak "MasterPage" adı verilen sayfa tasarımına sahip fakat sayfa olmayan Context eklenerek tasarımın tek bir sayfa üzerinden belirlenmesini sağlamak amacıyla kullanılacaktır.

    BİLGİ : Burada yazılı olan mimari tasarıma ek olarak "N KATMANLI MİMARİ" kullanılarak daha kolay ve temiz bir hale getirilecektir.

    "Data Layer" - "Presentation Layer" - "Work Layer"

    Buradaki tüm bilgiler proje "Gerçekleştirim" aşamasında silinebilir , eklenebilir veya değiştirilebilinirdir. Bazı bilgiler daha gerçekleştirim aşamasında olmadığından dolayı açıklanmamıştır.
    Son Güncelleme : 14.05.2015
  •  







    Proje Planı ve Uygulama Takvimi

      Mayıs Haziran
    7 8 9 10 11 12 13 14 15 9 10 11 12 13 14
    Tasarım                              
    Gerçekleştirim                              
    Test                              
    Sunum                              

    Tasarım

    15 Mayıs 2015 tarihinde projenin mimari tasarım, veri tasarımı ve prosedürel tasarım ı belirtilecek.

    Gerçekleştirim

    9 Haziran 2015 tarihinde projenin gerçekleştirme sorunları üzerinde bilgiler detaylı verilecek.

    Test

    11 Haziran 2015 tarihinde projenin test edilen modullerin tarifi ve sonuçları belirtilecek.

    Sunum

    13-14 Haziran 2015 tarihinde projenin sunumu powerpoint ve demonstrasyon üzerinde yapılacaktır.

    Yararlanılan veya yararlanılacak kaynaklar:

    Zen CRM Solution
    X2 Engine Sales CRM Software
    Microsoft Dynamics