Sentiment classification for product reviews (documentation)Mido Razaz
The documentation of the pre-master graduation project prepared by my self and my colleagues Mostafa Ameen, Mai M. Farag and Mohamed Abd El kader.
If you want me to conduct any similar research for you you can have my service through this link: https://www.fiverr.com/meizzo/convert-your-textual-data-set-from-csv-file-format-to-arff-format-for-weka
Description - Project aims to develop an application that can be used to translate the images of any format to the text format.
Features - It convert the standard font texts and handwritten texts from image files into editable text files.
Sentiment classification for product reviews (documentation)Mido Razaz
The documentation of the pre-master graduation project prepared by my self and my colleagues Mostafa Ameen, Mai M. Farag and Mohamed Abd El kader.
If you want me to conduct any similar research for you you can have my service through this link: https://www.fiverr.com/meizzo/convert-your-textual-data-set-from-csv-file-format-to-arff-format-for-weka
Description - Project aims to develop an application that can be used to translate the images of any format to the text format.
Features - It convert the standard font texts and handwritten texts from image files into editable text files.
Railway Reservation System - Requirement EngineeringDanish Javed
It's a presentation which is dealing with the requirements of the railway ticket reservation system with all details.
Topic: Requirement Engineering in Software Engineering
PMBOK v5'e göre hazırlanmış olan Risk Yönetimi eğitimi sunusudur. Sunu ve sunudaki resimler türkçe hazırlanmıştır, sunularda bulunan dokümanlar zip olarak ayrıca yüklenecektir
Proje Döngü Yönetimi, Projelerde Püf Noktalar, Avrupa Birliği Proje Yönetimi, Proje Görünürlük, Proje Sürdürülebilirlik, Gökhan Turgut Ünal, Hibe Başvuru Nedir, Proje Başvuru Rehberi, abprojeyonetimi.com
The 7 software testing principles briefly explained. Everyone who works in software development company should know these principles.
It happens frequently that testers or qa people are not taken into account as part of the process in the software development lifecycle and this happens expecially when the principles are not known.
Project Management - Web Application ReportNakul Sharma
The project management web-app using Kanban model style. The app utilizes technologies like Spring MVC, ORM, Transactions, RESTful web services, AOP, IoC and MySQL (database).
Railway Reservation System - Requirement EngineeringDanish Javed
It's a presentation which is dealing with the requirements of the railway ticket reservation system with all details.
Topic: Requirement Engineering in Software Engineering
PMBOK v5'e göre hazırlanmış olan Risk Yönetimi eğitimi sunusudur. Sunu ve sunudaki resimler türkçe hazırlanmıştır, sunularda bulunan dokümanlar zip olarak ayrıca yüklenecektir
Proje Döngü Yönetimi, Projelerde Püf Noktalar, Avrupa Birliği Proje Yönetimi, Proje Görünürlük, Proje Sürdürülebilirlik, Gökhan Turgut Ünal, Hibe Başvuru Nedir, Proje Başvuru Rehberi, abprojeyonetimi.com
The 7 software testing principles briefly explained. Everyone who works in software development company should know these principles.
It happens frequently that testers or qa people are not taken into account as part of the process in the software development lifecycle and this happens expecially when the principles are not known.
Project Management - Web Application ReportNakul Sharma
The project management web-app using Kanban model style. The app utilizes technologies like Spring MVC, ORM, Transactions, RESTful web services, AOP, IoC and MySQL (database).
PERAKENDECİLİKTE KATEGORİ YÖNETİMİ VE BİR MİKRO ALAN YÖNETİMİ ÇALIŞMASI - BER...Berk Hizliates
Bu projede, perakendecilikte yaygın olarak kullanılan “Kategori Yönetimi” sürecinin detaylı bir incelemesi gerçekleştirilmiştir. Bunun yanı sıra bu sürecin önemli bir parçası olan “Alan Yönetimi” konusunda örnek bir çalışma da sizlere sunulmaktadır.
3. iii
ÖN SÖZ
Bu bitirme tezi çalışması, Siirt Üniversitesi, Mühendislik-Mimarlık Fakültesi,
Bilgisayar Mühendisliği Lisans Programı kapsamında hazırlanmıştır.
Yoğun bir çalışma temposu ile gerçekleştirdiğimiz olan bu çalışmada bizlere yol
gösteren değerli tez danışmanımız Yrd. Doç. Dr. Yılmaz KAYA’ya teşekkür ederiz.
Ayrıca üniversite hayatı boyunca geleceğimize mimarlık yapmış olan Doç. Dr. Musa
ATAŞ’a, Öğr. Gör. Bashar Alhaj AHMAD’a, Öğr. Gör. Hasan KURBAN’a ve Yrd. Doç.
Dr. Volkan Müjdat TİRYAKİ’ye teşekkürlerimizi arz ederiz.
Özellikle bu çalışmada ve dört yıllık üniversite hayatımız boyunca birlikte yoğun
bir mesai sarf ettiğimiz, bu süre zarfında birbirimizden desteğimizi esirgemediğimiz ben
Hüseyin BİÇEN değerli dostum Halil ŞAHİN’e ve ben Halil ŞAHİN değerli dostum
Hüseyin BİÇEN’e teşekkürlerimi sunuyoruz.
Halil ŞAHİN / Hüseyin BİÇEN
SİİRT-2019
4. iv
İÇİNDEKİLER
Sayfa
ÖN SÖZ ..........................................................................................................................iii
İÇİNDEKİLER ..............................................................................................................iv
ÖZET ............................................................................................................................... v
ABSTRACT....................................................................................................................vi
TABLOLAR LİSTESİ ...............................................................................................vivi
1. GİRİŞ ........................................................................................................................... 1
1.1. SQL Server Nedir?................................................................................................. 1
1.2. C# Nedir?............................................................................................................... 1
1.3. Asp.Net MVC Nedir? .....................................Hata! Yer işareti tanımlanmamış.
1.4. Api Nedir Nedir? ................................................................................................... 5
1.5. Asp.Net Web Api Nedir?....................................................................................... 5
2. MATERYAL VE METOT......................................................................................... 8
2.1. Veritabanı Oluşturma............................................................................................. 8
2.2. Entity Framework Oluşturma .............................................................................. 10
2.3. Asp.net MVC Web Api Oluşturma...................................................................... 11
2.4. Asp.net MVC Web Uygulaması oluşturma......................................................... 11
3. BULGULAR VE TARTIŞMA................................................................................. 15
4. SONUÇLAR.............................................................................................................. 21
5. KAYNAKLAR .......................................................................................................... 28
ÖZGEÇMİŞLER .......................................................................................................... 29
5. v
ÖZET
LİSANS TEZİ
İNTERAKTİF EĞİTİM UYGULAMASI
Halil ŞAHİN / Hüseyin BİÇEN
Siirt Üniversitesi
Mühendislik Mimarlık Fakültesi
Bilgisayar Mühendisliği Anabilim Dalı
Danışman: Dr. Öğr. Üyesi Yılmaz KAYA
2019, 30 Sayfa
Bu projenin amacı, eğitimde öğrenciyi, hayatının her aşamasında eğitime aktif olarak katmak ve
eğitimciyi, doğrudan öğrencinin hayatının her aşamasında kendisine sorunlarını ve sorularını danışabileceği
bir arkadaş haline getirmektir. Bunu yaparken öğretmen günün belli saatlerinde öğrencilerine notlar
gönderebilir, sorular sorabilir hatta çeşitli bilgilendirmelerde bulunabilir. Öğrenciler ise bu uygulama
üzerinden notlarına bakabilir, devamsızlıklarını görebilir, eğitim kurumunun bir duyurusu varsa bundan
haberdar olabilir. Aynı şekilde veliler öğrencilerini takip etme imkanını bulabilirler.
Anahtar Kelimeler: Eğitim, İnteraktivite, Yönetim, Mobil uygulama, Web uygulama
6. vi
ABSTRACT
BACHELOR’S THESIS
INTERACTIVE EDUCATION APPLICATION
Halil ŞAHİN / Hüseyin BİÇEN
Siirt University
Faculty of Engineering and Architecture
Computer Engineering Depertmant
Supervisior: PhD Yılmaz KAYA
2019, 30 Pages
The aim of this project is to actively involve the student in education at all stages of his life and to
make the educator a friend whom he can consult with his problems and questions directly at the student's
life. In doing so, the teacher may send notes, ask questions or even give information to his students at
certain times of the day. Students can view their grades through this application, see their discontinuity and
be aware of the announcement of an educational institution. In the same way parents can follow their
students.
Keywords: Education, Interactivity, Management, Mobile application, Web application
7. vii
TABLOLAR LİSTESİ
Sayfa
Tablo 1.3.1 ....................................................................................................................... 3
Tablo 1.3.2 ....................................................................................................................... 4
Tablo 1.5.1.1 .................................................................................................................... 6
Tablo 2.1.1 Veritabanı Genel Görünümü......................................................................... 8
Tablo 2.1.2 Öğrenci Tablosu............................................................................................ 8
Tablo 2.1.2 Öğretmen Tablosu......................................................................................... 9
Tablo 2.1.2 Sorular Tablosu............................................................................................. 9
Tablo 2.2.1 Entity Framework Tabloların Genel Görünümü......................................... 10
Tablo 2.2.2 Tabloların Class Yapıları............................................................................ 10
Tablo 2.3.1 Asp.net MVC Web Api Genel Yapısı ........................................................ 11
Tablo 2.4.1 Asp.net MVC Web Uygulamsı Genel Yapısı............................................. 11
Tablo 2.4.2 Asp.net MVC Web Uygulaması Student Controller Kodları ..................... 12
Tablo 2.4.3 Asp.net MVC Web Uygulaması Student Model Kodları ........................... 12
Tablo 2.4.4 Asp.net MVC Web Uygulamasının Student Index Kodları ...................... 13
Tablo 2.4.5 Asp.net MVC Web Uygulaması Student Create Kodları ........................... 13
Tablo 2.4.6 Asp.net MVC Web Uygulaması Student Delete Kodları ........................... 14
Tablo 2.4.7 Asp.net MVC Web Uygulaması Student Edit Kodları............................... 14
Tablo 4.1.1 Web Site Anasayfa...................................................................................... 21
Tablo 4.1.2 Öğrenci Girişi ............................................................................................. 21
Tablo 4.1.3 Öğretmen Girişi .......................................................................................... 21
Tablo 4.1.4 Yönetici Girişi............................................................................................. 21
Tablo 4.1.5 Öğrenci Index Sayfasu................................................................................ 22
Tablo 4.1.6 Öğrenci Ekleme Sayfası.............................................................................. 22
Tablo 4.1.7 Öğrenci Düzenleme Sayfası........................................................................ 22
8. viii
Tablo 4.1.8 Öğrenci Silme Sayfas.................................................................................. 23
Tablo 4.1.9 Öğretmenler Index Sayfası ......................................................................... 23
Tablo 4.1.10 Dersker Index Sayfası............................................................................... 23
Tablo 4.1.11 Sınıflar Index Sayfası................................................................................ 24
Tablo 4.1.12 Grup Index sayfası.................................................................................... 24
Tablo 4.1.13 Öğrenci Notlar Index Sayfası ................................................................... 24
Tablo 4.1.14 Öğrenci Ödemeler Index Sayfası.............................................................. 25
Tablo 4.1.15 Öğrenci Devamsızlık Index Sayfası ......................................................... 25
Tablo 4.1.16 Duyurular Index Sayfası ........................................................................... 25
Tablo 4.1.17 Sistem Yönetici Sayfası............................................................................ 26
Tablo 4.1.18 Öğretmenler Soru Yazma Sayfası............................................................. 26
Tablo 4.1.19 Öğrenci Index Sayfası............................................................................... 26
Tablo 4.1.20 Android Anasayfa (Duyurular)................................................................. 27
Tablo 4.1.21 Android Giriş Sayfası ............................................................................... 27
Tablo 4.1.22 Android Giriş Anasayfa............................................................................ 27
9. 1
1. GİRİŞ
Teknolojinin gelişmesiyle birlikte İnteraktif Eğitim sistemlerinin, insan yaşamı
üzerindeki kolaylaştırıcı etkisi gün geçtikçe artmaktadır. Dünya genelinde teknolojik ve
ekonomik değişimlerin yönlendirilmesiyle farklı İnteraktif Eğitim sistemi tiplerine olan
talebin artması yenilik ve gelişmeler yönündeki ivmeyi hızlandırmıştır.
İnteraktif eğitim uygulaması, internet üzerinden okulunuza veya sınavlarınıza
yardımcı olabilmek için kullanılan bir tür evinizdeki dershanelerdir. İnteraktif eğitimde
amaç; öğrenciler için teknolojiyi kullanarak bir şeyler öğretmektir. Konu bazında
hazırlanmış testler, deneme sınavları gibi birçok unsuru içerisinde bulundurmaktadır.
Dershanelerdeki gibi konular üzerinde deneme sınavları yapılabilmektedir. Bunun
yanında anlamadığınız yerleri ilgili öğretmene sorma gibi bir durumunuz da söz
konusudur. Bu yönüyle de diğer uygulamaların karşısında ekstra avantajlara sahiptir.
1.1. SQL Server Nedir ?
SQL Server, Microsoft tarafından geliştirilmiş ilişkisel veri tabanı yönetim
sistemidir. İlişkisel veri tabanı sistemi ingilizce olarak Relational Database Management
System olarak adlandırılır ve kısaca RDBMS olarak bazı kaynaklarda karşımıza
çıkmaktadır. İlişkisel veri tabanı sisteminde veriler tablolar halinde tutulurlar ve bu
tablolar kendi aralarında ilişkisel anlamda birbiri ile bağlantılı olabilirler.
1.2. C# Nedir?
C#, yazılım sektörü içerisinde en sık kullanılan iki yazılım dili olan C ve C++ etkileşimi
ile türetilmiştir. Ayrıca C#, ortak platformlarda taşınabilir bir (portable language)
programlama dili olan Java ile pek çok açıdan benzerlik taşımaktadır . En büyük
özelliği ise .Net Framework platformu için hazırlanmış tamamen nesne yönelimli bir
yazılım dilidir. Yani nesneler önceden sınıflar halinde yazılıdır. Programcıya sadece o
nesneyi sürüklemek ve sonrasında nesneyi amaca uygun çalıştıracak kod satırlarını
yazmak kalır.
10. 2
Microsoft tarafından geliştirilen C#, C++ ve Visual Basic dillerinde yer alan
tutarsızlıkları kaldırmak için geliştirilmiş bir dil olmasına rağmen kısa süre içerisinde
nesne yönelimli dillerin içinde en gelişmiş programlama dillerinden biri olmayı
başarmıştır.
Ayrıca gelişmiş derleyicisi (debugger) ile hata olasılığını ortadan kaldırmaktadır.
Yazılan program çalıştırıldıktan sonra derleyici tarafından algılanan Sınıf (Class) ve söz
dizimi (syntax) hataları yazılımcıya ayrı bir ekranda ayrıntısı ile gösterilir ve yazılımcı
bu hata penceresinden hataları tespit ederek kolayca düzeltebilir.
Ayrıca pek çok programcı tarafından kullanılan bir dil olmasından ötürü
takıldığımız noktalarda uzman programcılardan yardım almak oldukça kolaydır.
1.3. ASP.NET MVC Nedir?
ASP.NET MVC, MVC pattern’ini ASP.NET’e eklemek için Microsoft’un
geliştirdiği framework’tür. ASP.NET MVC’nin ne olduğunu anlamak için öncelikle
MVC’nin ne olduğunu incelemekte fayda var.
MVC, uygulama geliştirmede (özellikle web uygulaması geliştirmede) önemli
yere sahip mimari desenlerden biridir. Günümüzde MVC denince akla Microsoft’un
geliştirdiği ASP.NET MVC Framework gelmektedir, oysa 1979 yılından beri (Microsoft
1975 yılında kurulmuştur) yazılım dünyasında yer almaktadır.
MVC, Model , View , Controller kelimelerinin baş harflerinden oluşur ve her
kelime MVC’nin farklı bir katmanını ifade eder.
11. 3
Tablo 1.3. 1
Model
MVC dünyasında model uygulama verisinin veya durumunun saklandığı yerdir,
genellikle veritabanı veya xml/json dosyası formatındadır.
Model, veri katmanını (database, xml, json dosyası, vb.) uygulamadan izole eder,
böylece diğer katmanlarda veri katmanının neresi olduğunun bilinmesine gerek kalmaz.
Model katmanı sıklıkla Entity Framework, Nhibernate, LLBLGen, vb. gibi araçlar
kullanılarak oluşturulur.
View
View, istemcinin gördüğü arayüzü içeren katmandır, genellikle Model
katmanındaki verinin kullanılması ile oluşturulur. View katmanının Model ve Controller
katmanlarından ayrılması ile arayüz değişikliklerinin uygulamanın diğer katmanlarını
değiştirmeye gerek kalmadan yapılabilmesi sağlanmıştır.
View katmanında HTML5 ve CSS3 gibi son versiyon teknolojiler kullanmak
mümkündür. HTML5 ve CSS3 ile masaüstü ve mobil tarayıcılarda çalışabilen
uygulamalar geliştirmek çok kolaylaşmıştır. Hatta Windows Store uygulamaları
geliştirmek için HTML5 ve CSS3 teknolojilerinden yararlanılabilir.
Controller
Controller, istemciden gelen isteği işlemek, Model ve View katmanları arasında
köprü olmak gibi görevleri yerine getirir. Controller içerisinde bir veya daha fazla Action
olabilir, genellikle her Action bir web sayfası üretmek için kullanılır.
12. 4
Tablo 1.3. 2
MVC’nin diğer bir önemli yapıtaşı Routing mekanizmasıdır.
Routing
Routing, istemci’nin uygulamaya yaptığı isteği uygun Controller ve Action’a
yönlendiren yapıdır. İstemci, isteği uygulamanın belli bir adresine gönderir, routing
mekanizması sayesinde ilgili adres için en uygun Controller ve içerisindeki Action tespit
edilir ve çalıştırılır.
Neden ASP.NET MVC tercih etmeliyim?
MVC ile istemcinin isteğine karşılık üretilen çıktı üzerinde çok büyük kontrol
imkânı vardır. Bu sayede her alanına müdahale edebildiğimiz ve isteğe en uygun çıktının
üretilebilmesi sağlanmıştır.
MVC ile tekrar kullanılabilir (reusable) kod üretmek mümkündür. MVC’nin
katmanları birbirinden ayrıldığı için her bir katmanın başka projelerde kullanılabilmesi
sağlanmıştır.
MVC ile istemcinin istek göndereceği adresler üzerinde çok büyük kontrol imkânı
vardır. Bu sayede adresin içerik ile tam bir ilişki içerisinde olması sağlanmıştır. Arama
motorları için adres-içerik ilişkisi önemli olduğu için uygulamanın bulunabilirliğine
katkısı yüksektir.
MVC ile test edilebilir uygulamalar geliştirme çok kolaylaşmıştır. Katmanların
birbirinden ayrı olması ve Test Driven Development yapmayı kolaylaştırıcı mimarisi
sayesinde test edilebilir uygulama geliştirilebilmesi sağlanmıştır.
13. 5
Sonuç
MVC uzun yıllardır birçok framework’te ve programlama dilinde kullanılmış
(Java, PHP, vb.) ve olgunlaşmış bir desendir. ASP.NET MVC sayesinde .Net framework
dilleri ile MVC pattern kullanılarak hızlı çalışan, test edilebilir, tekrar kullanılabilir
parçaları olabilen web uygulamaları geliştirilebilmesi sağlanmıştır.
1.4.API Nedir?
Asp .Net Web Api'a geçmeden önce Api nedir ondan bahsedelim. Api açılımı
"Application Programming Interface" olan Türkçe'de uygulama geliştirme arayüzü
anlamına gelir ve sahip olduğumuz service veya verileri dış dünyaya açıp başka
uygulamaların-platformların kullanımına sunmak için belli kurallar çerçevesinde
tanımlamalar yaptığımız bir arayüzdür.
1.5. ASP. NET WEB API Nedir?
Asp .Net Web Api ise farklı türde sayısız client (browsers, mobile phones, tablets,
pc, etc.) tarafından consume edilebilen HTTP protokolü üzerinden haberleşebilen
servisler oluşturmak için kullanılan bir framework şeklinde tanımlayabiliriz. Asp .net
MVC ile routing, controllers, action results, filter, model binders gibi ortak feature'lara
sahip olduklarından bir takım benzerlikler göstermektedir ancak MVC Framework'ün bir
parçası değildir. Asp .net Web Api Core Asp .Net'in bir parçasıdır ve MVC veya diğer
web application türleri ile birlikte kullanılabilir. Aynı zamanda bütün bunlardan bağımsız
stand-alone Web services application olarakta kullanılabilir.
1.5.1.Neden Asp.Net Web Api?
Günümüz dünyasında teknolojini gelişmesiyle birlikte firmalar artık web tabanlı
uygulamalar üzerinden müşterilerine tam olarak ulaşamaz hale geldiler. İnsanlar artık
günlük hayatlarının nerdeyse %50 sini akıllı telefonlar, tablet pc vs ile geçiriyorlar ve bu
14. 6
cihazlarda insanların hayatlarını kolaylaştıracak olan milyonlarca uygulama mevcut.
Bunların yanında birde İOT ile birlikte gelecek 5 yılda dünyada 30 milyara yakın internete
bağlanabilen cihazlar olacağından bahsediliyor ve buda belki milyonlarca Api
geliştirmesi demek.
Firmalar veya uygulama geliştiriciler müşterilere daha kolay ve hızlı bir şekilde
ulaşmada kullanmak için servislerini ve sahip oldukları verilerin bir kısmını browserlar
yada internete bağlanabilen bu akıllı cihazlar tarafından consume edilebilmeleri için
Api'lar geliştirmeleri gerekmektedir. Çünkü Api'lar yapısı gereği bütün programlama
dilleri tarafından ortak kabul görmüş medya tiplerini (XML-JOSN..etc.) response olarak
alıp gerekli parse işlemlerinden sonra kolayca kullanabilir.
Tablo 1.5.1. 1
Web Api sahip olduğunuz veri ve servisleri birçok farklı cihazda kullanıma
sunmak için expose edebilmenizi sağlayan şahane bir framework ve dahası Web Api .Net
Framework üzerinde RESTful servisler inşa etmenizi sağlayacak ideal bir open source
platform. WCF Rest service'lerinin aksine Web Api HTTP protokolünün bütün
özelliklerini kullanır (URIs, request/response headers, caching, versioning, çeşitli content
format'ları) WCF Rest Service'lerinde yapıldığı gibi farklı cihazlar için extra config
ayarları vs yapmamıza da gerek bulunmamaktadır. Request'i yapılırken dönmesi gereken
response'un XML mi yoksa JSON formatında mı olacağına client'ın seçimine
bırakılmıştır çünkü Web Api birden fazla medya formatında response dönebilmektedir.
15. 7
Başlıca Web API Özellikleri
• Http Get, Post, Put ve Delete metodlarıyla çalışabildiğinden CRUD
işlemelrini destekler,
• Response'larda HttpStatusCode ve Accept Header parametreleri bulunur,
• Response'lar kullanıcının istediği türde MediaTypeFormatter tarafından
formatlanabilir,
• OData desteği bulunmaktadır ve Query yazması oldukça kolaydır,
• Bir uygulama içerisinde veya IIS üzerinde host edilebilir,
• MVC'nin bazı özelliklerini taşır (routing, controllers, action results, filter,
model binders)
Neden Web Api'ı Seçmeliyiz ?
• Bir web service'e ihtiyacınız varsa ve soap'a ihtiyacınız yoksa en iyi
seçenek Web Api dir,
• Geliştirme sürece WCF de olduğu kadar zahmetli ve sıkıntılı değildir,
• Http tabanlı olduğundan Rest-ful servisler geliştirmek için en iyi
seçenektir,
• Exception ve Cache mimarileri oldukça performanslı ve yönetilebilir dir,
• Open Source olduğundan sürekli olarak geliştirilip yeni feature'lar
eklenmektedir,
• Microsoft yetkilileri Web Api sunumlarından birinde şuna benzer bir şey
söyledi "Biz daha iyisini yapana kadar en iyisi bu..!" bu demek oluyor ki
tam destek.
16. 8
2. MATERYAL VE METOT
2.1. Veritabanı Oluşturulması
Tablo 2.1.1 Veritabanının Genel Görünümü
MS SQL Server 2017 ile Veritabanı oluşturulup ve tablolar burada tutulur. İçerik
tablodaki gibidir.
Tablo 2.1.1
Tablo 2.1.2 Öğrenci Tablosu
Öğrenci bilgileri “Student” tablosuna girilir ve burada tutulur.
Tablo 2.1.2
Tablo 2.1.3 Öğretmenler Tablosu
17. 9
Öğretmen bilgileri “Teacher” tablosuna girilir ve burada tutulur.
Tablo 2.1.3
Tablo 2.1.4 Sorular Tablosu
Öğretmenler tarafında oluşturulan sorular “Questions” tablosuna girilir ve burada
tutulur.
Tablo 2.1.4
19. 11
2.3. Asp.net MVC Web Api Oluşturma
Tablo 2.3.1 Asp.net MVC Api Projesinin Genel Görünümü
Tablo 2.3. 3
2.4. Asp.net MVC Web Uygulaması
Tablo 2.4.1 Asp.net MVC Web Uygulamasının Genel Görünümü
Tablo 2.4. 1
20. 12
Tablo 2.4.2 Asp.net MVC Web Uygulamasının StudentController Sınıfı
Tablo 2.4. 2
Tablo 2.4.3 Asp.net MVC Web Uygulamasının Student Model (Entity Framework) Sınıfı
Tablo 2.4.3
21. 13
Tablo 2.4.4 Asp.net MVC Web Uygulamasının Student Index Sayfası Html kodları
Tablo 2.4. 4
Tablo 2.4.5 Asp.net MVC Web Uygulamasının Student Create Sayfası Html kodları
Tablo 2.4. 5
22. 14
Tablo 2.4.6 Asp.net MVC Web Uygulamasının Student Delete Sayfası Html kodları
Tablo 2.3. 6
Tablo 2.4.7 Asp.net MVC Web Uygulamasının Student Edit Sayfası Html kodları
Tablo 2.4. 7
23. 15
3. BULGULAR VE TARTIŞMA
Azimli çalışma ve gerekli araştırmanın yanında, var olan bilgi ve deneyimlerimiz
ile uygulamamızı belli bir aşamaya getirmeyi başardık. Lâkin gerek projenin büyüklüğü,
gerek ise vakit yetersizliğinden dolayı hâlen bizim açımızdan tatmin edici bir seviyeye
gelebilmiş değiliz. Uygulama teorik ve pratik olarak var olan hâliyle ticari kullanıma
hazırdır. Biz ekstra modüller eklemek adına ekstra süreye ihtiyaç duyduk. Bu modüller;
• Öğretmen ile öğrenci mesajlaşması
• Başarı yüzdesi tablosu
• Canlı soru ve test paylaşımı ( Eklendi ama tamamlanmadı)
Uygulamamızı dört ana kısımdan meydana getirdik. Bu kısımlar sırasıyla:
1.Veri Tabanı
2.MVC (Model – View – Controller)
3.Web API
4.Android
Aşağıda her aşama ile alakalı bulgu ve tartışmaları ayrı ayrı tartışıyor olacağız.
3.1. Veri Tabanı Bulgular ve Tartışmaları
Veri tabanı tarafında karşılaşılan en büyük sorun genellikle tablo ilişkileri
arasında olmuştur. Bu sorunun asıl kaynağı veri tabanı tablolarını teoride oluşturup
pratiğe dökmemekti. Uygulamamızı geliştirmeye başlayıp, test etmeye devam ettikçe bu
sorunları da çözmüş olduk. Veri tabanının ilişkisel hâli son olarak Tablo 3.2.1 gibidir ve
şu hâliyle uygulamamızın arayüzüyle tamamıyla uyum içerisindedir.
3.2. MVC Bulgular ve Tartışmaları
3.2.1. Sorun – 1 : Görüntü dosyalarının veri tabanına kaydedilmesi
Öğrenciler ve Öğretmenlerin CRUD işlemlerinde eklenen resmin veri tabanına
kaydedilirken boyut ve server yoğunluğuna bağlı olarak yavaşlamalar yaşanıyordu.
Çözüm; Yeni eklenen resmin locale kaydedilmesi ve resmin yol uzantısının veri tabanına
kaydedilmesiyle sorun çözüldü.
24. 16
3.2.2. Sorun – 2: Boolean değerlerin CRUD işlemleri
Bir veri tabanı uygulamasında boolean değerlerin CRUD işlemlerinin uygulamasında
yaşanan büyük sorunlardandı. Örneğin; Bir değerin (Cinsiyet, Durum...vs) Kullanıcıdan
veri alınırken veya gösterilirken problem yaşadık.
Çözüm; Asp.Net MVC Html Helper Teknolojisi kullanarak bu sorun çözüldü.
3.2.3. Sorun – 3: Öğrenci veya Öğretmen Hızlı Arama
Öğrencilerin herhangi bir bilgisinin değiştirmesi durumunda hızlı bir şekilde öğrenciyi
bulmak görevliler açısından zor olmalı. Örneğin: 500 öğrencisi olan bir eğitim
kurumunun, öğrenciler arasında bir kayıt bulmak bir zaman sorunu teşkil eder.
Çözüm; .Net’in LINQ teknolojini kullanarak bu sorun çözüldü.
3.2.4. Sorun – 4: Tarih gerektiren Textboxların takvim eklenmesi
Tarih eklemek için Textbox’a tıklandığında bir takvim açılması ve doğru bir şekilde
tarihin veri tabanına kaydedilmesi gerekmektedir.
Çözüm; Bu sorun JQuery’nin Datapicker nesnesi kullanarak çözüldü.
3.2.5. Sorun – 5: Arama teknolojisi (Ad, Soyad veya TC ile)
Notlar, Ödemeler ve Devamsızlıklar percerelerinden veri eklerken, textbox’a girilen id
ile veri tabanına kaydedilmesi gerekiyor ki; bu durumda her öğrencini Id numarasını
bilinmesi gerekir. Bu sorunun Id ile değil; Ad, Soyad veya T.C. Numarası ile hızlı bir
şekilde öğrenci bulunması gerekiyor.
Çözüm; Bu sorunu “Chosen, a Select Box Enhancer for jQuery and Prototype” script’i
kullanarak çözüldü.
3.2.6. Sorun – 6: Kullanıcıların Yetkileri
Üç farklı kullanıcı tipi(Yönetici, Öğretmen, Öğrenci/Veli) olduğundan dolayı, bunların
erişimlerinin belirlenmesi için üç farklı giriş Anahtarı tanımlanıp oturum işlemlerinin bu
anahtarlar üzerinden tanımlandı.
25. 17
3.3. Web API Bulgular ve Tartışmaları
3.3.1. Sorun – 1 : XML formatından JSON formatına geçiş
Bilindiği üzere bir API üzerinden datayı serialize etmenin iki türlü formatı mevcuttur. Bu
formatlar :
1. XML
2. JSON
Web API ile ilk defa bir model serialize edildiğinde bunu XML formatında yapar. Bizler
daha evrensel bir format olan JSON formatını kullanmak istedik.
Çözüm:
Bu sorunu Global.asax.cs sınıfının içerisine:
Kod satırını ekleyerek çözmüş bulunduk.
3.3.2. Sorun – 2 : Reference Loop Handling Hatası
Reference Loop Handling Rest API tarafında birbirleriyle ilişkili birden fazla sınıfı
çağırdığımız zaman karşılaştığımız bir sorundu. Bu hata doğrultusunda iki sınıf
birbirlerini sürekli çağırıyor ve sonuçta cache taşmasından dolayı result hata fırlatıyordu.
Çözüm:
Bu sorunu Reference Loop Handling hatasını NewtonSoft Json tarafında ignore eden
aşağıdaki kod satırını Global.asax.cs sınıfına ekleyerek çözdük.
3.3.3. Sorun – 3 : Tüm öğrenciler geri döndürülürken karşılaşılan hata
Bu hata kapsamında tüm öğrencileri çağırırken kullanılan http://localhost/api/Students
URL’i üzerinde dönen result bütün öğrenci bilgilerini içermiyordu.
Çözüm:
Önceden kullanılan HTTP Get yapısı Queryable<ClassType> ve Enumarable<
ClassType > yapılarıyla değiştirilerek hata çözüldü.
26. 18
3.3.4. Sorun – 4 : Null Reference Hatası
Tarzında atılan bir sorguda bazı değerler null değerler gönderiyordu.
Null Reference bulgusunu bir hata olarak tanımlamak pek doğru değildir. Çünkü
tercihlere göre değişebilir. Bu bulgu basitçe bir sınıfın içerisindeki boş değerlerin
karşısında çağırılan sorguda “Null” değerinin gösteriliyor olmasıdır.
Biz sorgularımızda “Null” değerlerini görmek istemediğimizden ve bu sorunun
çözümünde yeterli kaynak da bulamadığımızdan sorunu StackOverFlow üzerinde
dillendirdik.
Sorunun linki: https://stackoverflow.com/questions/55076529/wrong-serialization-on-
linq-web-api/55076949#55076949
27. 19
Çözüm:
Aşağıdaki kod satırı WebApiConfig.cs sınıfına eklenerek sorun çözüldü.
3.4. Android Uygulama Bulgular ve Tartışmaları
4.4.1. Sorun -1: Proje için en uygun HTTP kütüphanesinin seçimi
Karşılaşılan bulguların en başında projeye en uygun HTTP kütüphanesini seçmek vardı.
HTTP kütüphanesinin amacı WebAPI tarafından serve edilen datayı serialize etmektir.
Çözüm:
Başlangıçta Retrofit kullanılsa da gerek yetersizliği, gerek ise projeye uygun bir
kütüphane olmaması hasebiyle Android Volley Library kullanılmıştır.
3.4.2. Sorun -2: IIS üzerinden serialize edilen dataya Android üzerinden
ulaşmama
Projenin başlarında bu hata bayağı zamanımızı aldı. Çözümü için sofistike yollara
başvurduğumuz hatayı StackOverFlow’da dillendirmemize rağmen en sonunda çözümü
de kendimiz bulmuş olduk.
StackOverFlow:https://stackoverflow.com/questions/55092593/how-can-i-connect-
from-my-android-application-to-webapi/55130562#55130562
Çözüm:
Adım 1: Windows Defender'ı açın -> güvenlik duvarı ve ağ koruması -> Ortak Ağ ->
koruması kapatıldı.
Adım: 2: Jexus Manager uygulaması kuruldu, pc adınızın altındaki siteler sekmesine
gidip yeni Web Sitesi Eklendi.
Herhangi bir proje adı verin ve Fiziksel yol altındaki butondan web uygulama yolunuzu
seçildi. Bir port verdik, örn. 61508. Ana bilgisayar adı için 127.0.0.1 kullandık, IP Adresi
için kendi IPv4 adresimizi kullanın ve onayladık.
28. 20
Adım 3: Sol tarafta site adının altından sağ tıklayıp proje IIS üzerinden çalıştırıldı.
Adım 4: PC üzerinden çalıştığı test edildikten sonra android üzerindeki mevcut
URL şu şekilde güncellendi: http://10.0.2.2:61508/api/Students ve veriler android
tarafına başarıyla çekildi.
3.4.3. Sorun - 3: JSON Object – JSON Array Farkından Kaynaklı Bulgu
Projeyi Android üzerinde serialize ederken datayı eksik veya parça parça (Parse Edilmiş)
hâlini çekememizden kaynaklı olarak bir sorun olduğunu fark ettik. Bu sorun aslında iki
tip JSON yapısı olduğundan kaynaklı bir sıkıntıydı.
Çözüm:
Neredeyse bütün kaynaklarda JSON Object yapısının nasıl parse edileceğine dair bilgiler
bulunuyordu. Daha sonra iki tip JSON serializer metodunun olduğunun farkına vardıktan
sonra yapımızı JSON Object tipinden JSON Array tipine çekerek sorunu çözmüş
bulunduk.
JSON Object Tip Gösterimi:
JSON Array Tip Gösterimi:
29. 21
4. SONUÇLAR
4.1. Sonuç
Uygulamanın girişinde, şık tasarımının yanında responsive (her platforma duyarlı)
tasarımıyla ve Bootstrap ile süslenmiş anasayfa kullanıcıları karşılamaktadır.
Bu tasarımda sırasıyla; Anasayfa, Duyurular, Neden Biz, Galeri ve İletişim
Butonlarının yanında öğrencilerin, öğretmenlerin ve yöneticilerin ayrı ayrı giriş
yapabileceği giriş seçeneği yer almaktadır.
Tablo 4.1. 1 Anasayfa
Tablo 4.1. 2 Öğrenci Giriş Tablo 4.1. 3 Öğretmen Girişi
Tablo 4.1. 4 Yönetici Girişi
30. 22
Tablo 4.1. 5 Öğrenci Index Sayfası
Tablo 4.1. 6 Öğrenci Ekleme Sayfası
Tablo 4.1. 7 Öğrenci Düzenleme Sayfası
31. 23
Tablo 4.1. 8 Öğrenci Silme Sayfası
Tablo 4.1. 9 Öğretmen Index Sayfası
Tablo 4.1. 10 Dersler Index Sayfası
32. 24
Tablo 4.1. 11 Sınıflar Index sayfası
Tablo 4.1. 12 Grup Index Sayfası
Tablo 4.1. 13 Öğrenci Notlar Index Sayfası
33. 25
Tablo 4.1. 14 Öğrenci Ödemeler Index Sayfası
Tablo 4.1. 15 Öğrenci Devamsızlık Index Sayfası
Tablo 4.1. 16 Duyurular Index Sayfası
34. 26
Tablo 4.1. 17 Sistem Yönetici Sayfası
Tablo 4.1. 18 Öğretmenler Soru Yazma Sayfası
Tablo 4.1. 19 Öğrenci Index Sayfası
35. 27
Tablo 4.1. 20 Mobil Uygulama Anasayfa
Tablo 4.1. 21 Mobil Uygulama Giriş Sayfası Tablo 4.1. 22 Mobil Uygulama Giriş Anasayfa
37. 29
ÖZGEÇMİŞ
KİŞİSEL BİLGİLER
Adı Soyadı
:
Hüseyin BİÇEN
Doğum Yeri ve Tarihi
:
Batman / 13.06.1996
Telefon
:
+90 543 837 9296
E-posta
:
huseynbicen@gmail.com
EĞİTİM
Derece Adı, İlçe, İl Bitirme Yılı
Lise : Batman Fatih Lisesi 2014
Üniversite : Siirt Üniversitesi Bilgisayar Mühendisliği 2019
İŞ DENEYİMLERİ
Yıl Kurum Görevi
2017 Microsoft Türkiye Stajyer
2018 Index Grup Stajyer
UZMANLIK ALANI
• C# (.Net) ■■■■■■■■■■□□
• JAVA ■■■■■■■■■□□□
• C & C++ ■■■■■■■□□□□□
• Machine Learning ■■■■■■■■□□□□
• OOP in C# and Java ■■■■■■■■■□□□
• IOT ■■■■■■■■□□□□
• Asp.Net / Asp.Net Core / Asp.Net MVC / Web Api ■■■■■■■■■■□□
• Xamarin (Cross Platform) / Android ■■■■■■■■□□□□
38. 30
ÖZGEÇMİŞ
KİŞİSEL BİLGİLER
Adı Soyadı
:
Halil ŞAHİN
Doğum Yeri ve Tarihi
:
Batman / 01.05.1991
Telefon
:
+90 553 492 2220
E-posta
:
Halilsahin.dev@gmail.com
EĞİTİM
Derece Adı, İlçe, İl Bitirme Yılı
Lise : 75. Yıl Cumhuriyet Anadolu Lisesi 2010
Üniversite : Siirt Üniversitesi Bilgisayar Mühendisliği 2019
İŞ DENEYİMLERİ
Yıl Kurum Görevi
2016 Microsoft Türkiye Stajyer
2017 Hes Kablo Stajyer
2018 Solvia Stajyer
UZMANLIK ALANI
• C# (.Net) ■■■■■■■■■■□□
• JAVA ■■■■■■■■■□□□
• C & C++ ■■■■■■■□□□□□
• Machine Learning ■■■■■■■■□□□□
• OOP in C# and Java ■■■■■■■■■□□□
• IOT ■■■■■■■■□□□□
• Asp.Net / Asp.Net Core / Asp.Net MVC / Web Api ■■■■■■■■■■□□
• Xamarin (Cross Platform) / Android ■■■■■■■■□□□□