VERİ MODELİ OLUŞTURMA

Proje Analizinin Okunması

Bu öğrenme içeriğinde bir fikrim var uygulaması kapsamında hazırlanan analiz dokümanı odağında bir yazılımın temel taşı olan ve her biri Kuika’da bir modüle denk gelen bileşenlere karar veriyor olacağız. Bu bileşenler;

  • Arayüzler
  • Veri Kaynakları
  • Veri modeli
  • İş Akışı
  • Periyodik İşler
  • API
  • Son Kullanıcı Bildirimleri(Emailler, SMS’ler, Push Notificationlar)
  • Roller
  • Login

Belirtilen bu bileşenlere karar verirken oluşturulan analiz dokümanından faydalanacak, analiz dokümanında yer alan paragrafları okuyarak, bileşen başlıklarının altını dolduracağız.

Arayüzler başlığı ile sürece başlayalım. 

Bir fikrim var projesindeki deki temel amaç, farklı departmanlarda bulunan personellerin yaratıcılığını ve inisiyatifini artırarak, şirket içi süreçlerin ve akışların iyileştirilmesine olanak sağlayacak bir uygulama oluşturmaktır. Buradan, bu projede şirket içinde çalışan personellere yönelik işlemlerin yapılmasını sağlayan ekranların ihtiyacı ortaya çıkıyor. Dolayısıyla, personellerin kaydını ve güncelleme işlemlerini sağlayacak kullanıcı arayüzlerini oluşturmak gerekebilir. Bu kapsamda Personeller için kaydetme, listeleme, güncelleme ve silme işlemlerinin yürütüleceği ekran tasarımlarını gerçekleştirmek gerekecektir. Biz bu işlemi Designer 1 kursunda detaylı olarak gerçekleştirdik.

Analiz dokümanının başlangıcını okumaya devam ettiğimizde arayüz başlığı altında fikirlerin oluşturulacağı, listeleneceği, fikir detaylarını gösteren, fikir güncelleme ve silme işlemlerinin yürütülmesini sağlayan ekranların oluşturulması gerekebileceğini öngörüyoruz. Analiz dokümanın devamından anlayacağımız üzere fikirleri görüntülerken iki farklı görüntüleme ihtiyacını gözlemliyoruz. Bu noktada hem kullanıcıların kendi oluşturdukları fikirleri görebileceği bir alana hem de diğer kullanıcıların fikirlerini görüntüleyebileceği bir alana ihtiyaç olduğunu tahmin ediyoruz. Bu noktada, çalışanların kendi fikirlerini oluşturabilmesi için uygulamaya kayıt olması ve giriş yapması gerekeceğinin kaçınılmaz olduğunu farkettik. Fakat giriş yapma ekranında kullanılacak yetkilendirme mekanizmasının bilgisine sahip değiliz. Alternatiflerimiz arasında Kuika Sign in, Google Sign in ve Microsoft Authentication Library yani kısaca MSAL gibi farklı seçenekler var.  Bu seçenekler arasında net bir cevaba ulaşmak için analiz dokümanının devamını okumak gerekecek.

Bu noktada analiz dokümanın devamında ortaya çıkan bir ihtiyaç mevcut. Bu doğrultuda giriş yapmış kullanıcıya yönelik bilgilerin tutulması için profil ekranına ihtiyaç duyabiliriz. Personellerin sisteme kullanıcı kaydını gerçekleştirirken Kuika tarafından sunulan sistem tablolarından KUser tablosunu kullanmamız gerekecektir. Bu noktada veri modellemesi yaparken KUser tablosu ile personel tablosu arasında ilişkiyi oluşturmak için personel tablosunda KUser ID’sini eklemek gerekebilir. Kuika’da Datasources modülünde yer alan ve K harfi ile başlayan tablolar, Kuika tarafından sunulan varsayılan sistem tablolarını temsil etmektedir. Sistem tablolarına biraz daha yakından bakacak olursak, sistem tabloları aracılığıyla, kullanıcı adı bilgileri, rol bilgileri, kullanıcı rol eşleştirmeleri, mobil uygulamalarda kullanıcı adını bazında Device Id bilgileri, bildirimler kullanıldıysa atılan bildirim mesajları ve kullanıcıların bildirim mesajlarını okuma durumu gibi bilgilerin veri tabanında tutulması sağlanabilmektedir.

Veri modeli başlığından devam ederek ilerleyelim. Veri modelli kapsamında ihtiyaç duyacağımız tabloların çerçevesini oluşturalım. 

Uygulama içerisinde fikir talebinde bulunacak personeller için bir personel tablosuna ihtiyaç duyuyoruz. Personel tablosunda, Tablonun ID’si, personel sicil numarası kolonu, Personel Ad soyad kolonu, Personel E-postası, KUser tablosu ile ilişki kurmak için KUserID kolonu, Personel görseli kolonu,Personellerin mevcut çalışma durumu bilgisini barındıran Status kolonu, Personellerin ünvan bilgisini barındıran bir Personel Title kolonuna ve ilerde kullanabilme ihtimalimize karşılık personellerin sisteme kayıt tarihini barındıran Created Date kolonuna ihtiyaç duyuyoruz. Bu kolonların yanı sıra personellerin departman bilgisini tutmak için bir personel Departman kolonu ihtiyacı ortaya çıkıyor. Fakat bu kolonu oluşturacağımız bir Departman tablosuyla ilişkilendirmek daha sağlıklı sonuçlar ortaya çıkaracaktır. Dolayısıyla bir tablo ID’sine ve Departman Adı bilgisine sahip bir Departman tablosu oluşturmak gerekecektir.

Veri modeli başlığı altında diğer bir ihtiyaç duyduğumuz tablo ise Fikir tablosu. Bu tablo altında, tablonun sahip olduğu ID’ye, personel tablosuyla ilişkilendirilmiş Fikir Sahibi kolonu, fikir açıklamalarını barındıran fikir açıklama kolonuna ve fikirlerin eklendiği tarih bilgilerini tutmak için Created Date kolonuna ihtiyaç vardır. Bununla birlikte fikre ait oy bilgilerini içeren FikirLike kolonuna ihtiyaç duyulmakta. Bu kolonun fikirlere ait oy bilgilerini içeren bir tabloyla ilişkilendirilmesi daha sağlıklı bir yapı kurgulamamızı sağlayacaktır. Dolayısıyla, bir FikirLike tablosu kurgusunu oluşturmak gerekmektedir. FikirLike tablosu için tablonun Id kolonuna, FikirTablosu ile ilişkili bir FikirId kolonuna, fikir oylarıyla personelleri ilişkilendirecek şekilde PersonelId kolonuna ve kullanılması gerekebilecek bir senaryoda işe koşulmaya hazır oyların eklendiği tarih bilgilerini tutmak için Created Date kolonuna ihtiyaç duyulmaktadır.

Analiz dokümanının devam eden bölümlerinde 

Uygulamanın hızlı ve esnek bir şekilde geliştirilmesi sayesinde, çalışanların fikirlerinin görünür olması, oylanması ve hayata geçirilmesi süreci desteklenecek, bu sayede şirketin genel performansı ve çalışan memnuniyeti artırılacaktır. cümlesi yer almaktadır.

Bu cümle bağlamında doküman içerisinde bir şirket kavramı ortaya çıkmıştır. Bu bir şirket mi yoksa birden fazla şirket mi var sorusunu cevaplama ihtiyacını beraberinde getirmiştir . Tek bir şirket üzerinde ilerlemeye karar vereceğimiz senaryoda personeller için ek bir şirket bilgisini tutmaya ihtiyaç duymazken birden fazla şirketin dahil olduğu senaryo kapsamında personeller için bir şirket bilgisini tutma ihtiyacı ortaya çıkacaktır.

Proje kapsamı doğrultusunda tek bir şirket üzerinden ilerlemenin proje ihtiyaçlarını karşıladığına karar verdik. Bu senaryoda çalışanlar için bir şirket kırılımı oluşturma ihtiyacı ortaya çıkmamış, dolayısıyla çalışan tablosunda şirket bilgisini tutmak gerekmemektedir.

Analiz dokümanında Kapsam bölümüyle ilerleyelim.

Kapsam bölümünden çıkarımlarımızla ilk olarak kullanıcı arayüzlerinin Web ve mobil olmak üzere ikiye bölüneceğini varsayabiliriz.Bu noktada Registration ekranlarının da hem web hem mobil olarak tasarlamasını bekleyeceğiz. Aynı doğrultuda giriş yapmış kullanıcıya yönelik bilgileri gösteren profil ekranının da hem web hem de mobil olarak tasarlanmasını bekliyoruz. Mobil uygulama senaryosu kapsamında uygulamamızın giriş seçeneklerine Apple Sign in’de eklenebilir. 

Kapsam bölümünde ilk kez karşılaştığımız bir yapı olan Yorum yapısı için bir veri modellemesi yapma ihtiyacı ortaya çıktı. Bunun için Fikir Yorum adında bir tablonun çerçevesini oluşturalım. Bu tabloda, tablonun sahip olduğu bir ID kolonu, Fikir tablosu ile ilişkili bir FikirID kolonu, Personel tablosu ile ilişkili bir PersonelID kolonu, yorum metnini içeren CommentDescription kolonuna ve yorumların eklendiği tarih bilgilerini tutmak için Created Date kolonuna  ihtiyaç olduğu ortaya çıkmaktadır.

Analiz dokümanının devamında okuduğumuz doğrultuda kullanıcının kendi oluşturduğu fikirleri kullanıcı profil ekranında, diğer kullanıcılar tarafından oluşturulan fikirleri ise Listeleme ekranlarında görüntüleyebileceğini düşünebiliriz. 

Analiz dokümanın devamında fikir oluştururken karşılaşılan fikir kategorisi alanını görüntülüyoruz. Bu doğrultuda bir fikir kategorisi tablosuna ihtiyaç duyuyoruz.

Fikir kategorisi tablosunda, tablonun sahip olduğu bir ID kolonuna ve CategoryName kolonuna ihtiyaç olduğu çıkarımını yapabiliriz.

Fikir kategorisi tablosunu hazırlama işlemimiz sonrasında daha önce kapsamını belirlediğimiz fikir tablosuna bir kategori kolonu eklememiz gerekecek ve ilgili kolonu fikir kategorisi tablosu ile ilişkilendirmek gerekecek.

Dokümanın devamında fikirlerin başlığına ihtiyaç duyulduğunu görüyoruz. Fikir tablosuna fikir Başlığı kolonunu eklememiz gerekecek. Bununla birlikte fikirlere ait görsel eklemek için yine fikir tablosuna fikir görseli kolonunu eklemeliyiz.

Analiz dokümanında yer alan; Fikirler, popülerlik ve alaka düzeyine göre sıralanır maddesi için

Fikir listeleme ekranında fikir alanlarının yanı sıra fikirlerin beğeni sayısını göstermek gerekecek. Yine Popülerlik düzeyine göre sıralama için beğeni sayısına göre sıralama seçeneğini listeleme ekranlarına eklemek gerekecektir. Alternatif olarak harf sırasına göre sıralamayı da arayüze ekleyebiliriz.

Uygulamada yer alan toplam fikir sayısının, giriş yapmış kullanıcı tarafından oluşturulmuş fikir sayılarının ve son fikirlerin listelenmesini sağlayan bir Dashboard ekranını da oluşturmamız beklenmektedir.

Faz 1 kapsamında sunulan maddelerin analiz okumasını gerçekleştirdik. Faz 2 kapsamında ele alınan konuların analiz okumasını ise Builder 2 öğretim programımızda detaylı ele alacağız. 

Faz 1 kapsamında ele alına konuları bir Builder/geliştirici bakış açısıyla detaylı değerlendirdik. Designer 1 öğretim programında tasarım bakış açısıyla oluşturulan ve bu öğrenme içeriğinde teknik olarak da doğruladığımız ekranlar için geliştirme sürecini bu öğretim programının devamında sürdüreceğiz. 

Faz 2 olarak ele alınan iş akışı süreçlerini ise Builder 2 öğretim programında ilerleteceğiz.

Bu öğrenme içeriğinde bir fikrim var uygulaması kapsamında hazırlanan analiz dokümanı odağında bir yazılımın temel taşı olan ve her biri Kuika’da bir modüle denk gelen bileşenlere karar veriyor olacağız. Bu bileşenler;

  • Arayüzler
  • Veri Kaynakları
  • Veri modeli
  • İş Akışı
  • Periyodik İşler
  • API
  • Son Kullanıcı Bildirimleri(Emailler, SMS’ler, Push Notificationlar)
  • Roller
  • Login

Belirtilen bu bileşenlere karar verirken oluşturulan analiz dokümanından faydalanacak, analiz dokümanında yer alan paragrafları okuyarak, bileşen başlıklarının altını dolduracağız.

Arayüzler başlığı ile sürece başlayalım. 

Bir fikrim var projesindeki deki temel amaç, farklı departmanlarda bulunan personellerin yaratıcılığını ve inisiyatifini artırarak, şirket içi süreçlerin ve akışların iyileştirilmesine olanak sağlayacak bir uygulama oluşturmaktır. Buradan, bu projede şirket içinde çalışan personellere yönelik işlemlerin yapılmasını sağlayan ekranların ihtiyacı ortaya çıkıyor. Dolayısıyla, personellerin kaydını ve güncelleme işlemlerini sağlayacak kullanıcı arayüzlerini oluşturmak gerekebilir. Bu kapsamda Personeller için kaydetme, listeleme, güncelleme ve silme işlemlerinin yürütüleceği ekran tasarımlarını gerçekleştirmek gerekecektir. Biz bu işlemi Designer 1 kursunda detaylı olarak gerçekleştirdik.

Analiz dokümanının başlangıcını okumaya devam ettiğimizde arayüz başlığı altında fikirlerin oluşturulacağı, listeleneceği, fikir detaylarını gösteren, fikir güncelleme ve silme işlemlerinin yürütülmesini sağlayan ekranların oluşturulması gerekebileceğini öngörüyoruz. Analiz dokümanın devamından anlayacağımız üzere fikirleri görüntülerken iki farklı görüntüleme ihtiyacını gözlemliyoruz. Bu noktada hem kullanıcıların kendi oluşturdukları fikirleri görebileceği bir alana hem de diğer kullanıcıların fikirlerini görüntüleyebileceği bir alana ihtiyaç olduğunu tahmin ediyoruz. Bu noktada, çalışanların kendi fikirlerini oluşturabilmesi için uygulamaya kayıt olması ve giriş yapması gerekeceğinin kaçınılmaz olduğunu farkettik. Fakat giriş yapma ekranında kullanılacak yetkilendirme mekanizmasının bilgisine sahip değiliz. Alternatiflerimiz arasında Kuika Sign in, Google Sign in ve Microsoft Authentication Library yani kısaca MSAL gibi farklı seçenekler var.  Bu seçenekler arasında net bir cevaba ulaşmak için analiz dokümanının devamını okumak gerekecek.

Bu noktada analiz dokümanın devamında ortaya çıkan bir ihtiyaç mevcut. Bu doğrultuda giriş yapmış kullanıcıya yönelik bilgilerin tutulması için profil ekranına ihtiyaç duyabiliriz. Personellerin sisteme kullanıcı kaydını gerçekleştirirken Kuika tarafından sunulan sistem tablolarından KUser tablosunu kullanmamız gerekecektir. Bu noktada veri modellemesi yaparken KUser tablosu ile personel tablosu arasında ilişkiyi oluşturmak için personel tablosunda KUser ID’sini eklemek gerekebilir. Kuika’da Datasources modülünde yer alan ve K harfi ile başlayan tablolar, Kuika tarafından sunulan varsayılan sistem tablolarını temsil etmektedir. Sistem tablolarına biraz daha yakından bakacak olursak, sistem tabloları aracılığıyla, kullanıcı adı bilgileri, rol bilgileri, kullanıcı rol eşleştirmeleri, mobil uygulamalarda kullanıcı adını bazında Device Id bilgileri, bildirimler kullanıldıysa atılan bildirim mesajları ve kullanıcıların bildirim mesajlarını okuma durumu gibi bilgilerin veri tabanında tutulması sağlanabilmektedir.

Veri modeli başlığından devam ederek ilerleyelim. Veri modelli kapsamında ihtiyaç duyacağımız tabloların çerçevesini oluşturalım. 

Uygulama içerisinde fikir talebinde bulunacak personeller için bir personel tablosuna ihtiyaç duyuyoruz. Personel tablosunda, Tablonun ID’si, personel sicil numarası kolonu, Personel Ad soyad kolonu, Personel E-postası, KUser tablosu ile ilişki kurmak için KUserID kolonu, Personel görseli kolonu,Personellerin mevcut çalışma durumu bilgisini barındıran Status kolonu, Personellerin ünvan bilgisini barındıran bir Personel Title kolonuna ve ilerde kullanabilme ihtimalimize karşılık personellerin sisteme kayıt tarihini barındıran Created Date kolonuna ihtiyaç duyuyoruz. Bu kolonların yanı sıra personellerin departman bilgisini tutmak için bir personel Departman kolonu ihtiyacı ortaya çıkıyor. Fakat bu kolonu oluşturacağımız bir Departman tablosuyla ilişkilendirmek daha sağlıklı sonuçlar ortaya çıkaracaktır. Dolayısıyla bir tablo ID’sine ve Departman Adı bilgisine sahip bir Departman tablosu oluşturmak gerekecektir.

Veri modeli başlığı altında diğer bir ihtiyaç duyduğumuz tablo ise Fikir tablosu. Bu tablo altında, tablonun sahip olduğu ID’ye, personel tablosuyla ilişkilendirilmiş Fikir Sahibi kolonu, fikir açıklamalarını barındıran fikir açıklama kolonuna ve fikirlerin eklendiği tarih bilgilerini tutmak için Created Date kolonuna ihtiyaç vardır. Bununla birlikte fikre ait oy bilgilerini içeren FikirLike kolonuna ihtiyaç duyulmakta. Bu kolonun fikirlere ait oy bilgilerini içeren bir tabloyla ilişkilendirilmesi daha sağlıklı bir yapı kurgulamamızı sağlayacaktır. Dolayısıyla, bir FikirLike tablosu kurgusunu oluşturmak gerekmektedir. FikirLike tablosu için tablonun Id kolonuna, FikirTablosu ile ilişkili bir FikirId kolonuna, fikir oylarıyla personelleri ilişkilendirecek şekilde PersonelId kolonuna ve kullanılması gerekebilecek bir senaryoda işe koşulmaya hazır oyların eklendiği tarih bilgilerini tutmak için Created Date kolonuna ihtiyaç duyulmaktadır.

Analiz dokümanının devam eden bölümlerinde 

Uygulamanın hızlı ve esnek bir şekilde geliştirilmesi sayesinde, çalışanların fikirlerinin görünür olması, oylanması ve hayata geçirilmesi süreci desteklenecek, bu sayede şirketin genel performansı ve çalışan memnuniyeti artırılacaktır. cümlesi yer almaktadır.

Bu cümle bağlamında doküman içerisinde bir şirket kavramı ortaya çıkmıştır. Bu bir şirket mi yoksa birden fazla şirket mi var sorusunu cevaplama ihtiyacını beraberinde getirmiştir . Tek bir şirket üzerinde ilerlemeye karar vereceğimiz senaryoda personeller için ek bir şirket bilgisini tutmaya ihtiyaç duymazken birden fazla şirketin dahil olduğu senaryo kapsamında personeller için bir şirket bilgisini tutma ihtiyacı ortaya çıkacaktır.

Proje kapsamı doğrultusunda tek bir şirket üzerinden ilerlemenin proje ihtiyaçlarını karşıladığına karar verdik. Bu senaryoda çalışanlar için bir şirket kırılımı oluşturma ihtiyacı ortaya çıkmamış, dolayısıyla çalışan tablosunda şirket bilgisini tutmak gerekmemektedir.

Analiz dokümanında Kapsam bölümüyle ilerleyelim.

Kapsam bölümünden çıkarımlarımızla ilk olarak kullanıcı arayüzlerinin Web ve mobil olmak üzere ikiye bölüneceğini varsayabiliriz.Bu noktada Registration ekranlarının da hem web hem mobil olarak tasarlamasını bekleyeceğiz. Aynı doğrultuda giriş yapmış kullanıcıya yönelik bilgileri gösteren profil ekranının da hem web hem de mobil olarak tasarlanmasını bekliyoruz. Mobil uygulama senaryosu kapsamında uygulamamızın giriş seçeneklerine Apple Sign in’de eklenebilir. 

Kapsam bölümünde ilk kez karşılaştığımız bir yapı olan Yorum yapısı için bir veri modellemesi yapma ihtiyacı ortaya çıktı. Bunun için Fikir Yorum adında bir tablonun çerçevesini oluşturalım. Bu tabloda, tablonun sahip olduğu bir ID kolonu, Fikir tablosu ile ilişkili bir FikirID kolonu, Personel tablosu ile ilişkili bir PersonelID kolonu, yorum metnini içeren CommentDescription kolonuna ve yorumların eklendiği tarih bilgilerini tutmak için Created Date kolonuna  ihtiyaç olduğu ortaya çıkmaktadır.

Analiz dokümanının devamında okuduğumuz doğrultuda kullanıcının kendi oluşturduğu fikirleri kullanıcı profil ekranında, diğer kullanıcılar tarafından oluşturulan fikirleri ise Listeleme ekranlarında görüntüleyebileceğini düşünebiliriz. 

Analiz dokümanın devamında fikir oluştururken karşılaşılan fikir kategorisi alanını görüntülüyoruz. Bu doğrultuda bir fikir kategorisi tablosuna ihtiyaç duyuyoruz.

Fikir kategorisi tablosunda, tablonun sahip olduğu bir ID kolonuna ve CategoryName kolonuna ihtiyaç olduğu çıkarımını yapabiliriz.

Fikir kategorisi tablosunu hazırlama işlemimiz sonrasında daha önce kapsamını belirlediğimiz fikir tablosuna bir kategori kolonu eklememiz gerekecek ve ilgili kolonu fikir kategorisi tablosu ile ilişkilendirmek gerekecek.

Dokümanın devamında fikirlerin başlığına ihtiyaç duyulduğunu görüyoruz. Fikir tablosuna fikir Başlığı kolonunu eklememiz gerekecek. Bununla birlikte fikirlere ait görsel eklemek için yine fikir tablosuna fikir görseli kolonunu eklemeliyiz.

Analiz dokümanında yer alan; Fikirler, popülerlik ve alaka düzeyine göre sıralanır maddesi için

Fikir listeleme ekranında fikir alanlarının yanı sıra fikirlerin beğeni sayısını göstermek gerekecek. Yine Popülerlik düzeyine göre sıralama için beğeni sayısına göre sıralama seçeneğini listeleme ekranlarına eklemek gerekecektir. Alternatif olarak harf sırasına göre sıralamayı da arayüze ekleyebiliriz.

Uygulamada yer alan toplam fikir sayısının, giriş yapmış kullanıcı tarafından oluşturulmuş fikir sayılarının ve son fikirlerin listelenmesini sağlayan bir Dashboard ekranını da oluşturmamız beklenmektedir.

Faz 1 kapsamında sunulan maddelerin analiz okumasını gerçekleştirdik. Faz 2 kapsamında ele alınan konuların analiz okumasını ise Builder 2 öğretim programımızda detaylı ele alacağız. 

Faz 1 kapsamında ele alına konuları bir Builder/geliştirici bakış açısıyla detaylı değerlendirdik. Designer 1 öğretim programında tasarım bakış açısıyla oluşturulan ve bu öğrenme içeriğinde teknik olarak da doğruladığımız ekranlar için geliştirme sürecini bu öğretim programının devamında sürdüreceğiz. 

Faz 2 olarak ele alınan iş akışı süreçlerini ise Builder 2 öğretim programında ilerleteceğiz.

Dosyalar

Yardımcı kaynaklar

Sözlük