|
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
|
|