bitirme sunum

56
Danışman Yrd. Doç. Dr. Feza Buzluca İTÜ Bilgisayar Mühendisliği Bitirme Projesi iCity Hazırlayanlar Oben Işık (040080220) , Gökhan Karaca(040070234)

Upload: gosoft

Post on 13-Nov-2014

1.594 views

Category:

Technology


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Bitirme sunum

Danışman Yrd. Doç. Dr. Feza Buzluca

İTÜ Bilgisayar Mühendisliği Bitirme Projesi

iCity

HazırlayanlarOben Işık (040080220) , Gökhan Karaca(040070234)

Page 2: Bitirme sunum

iCity Tanıtım Aşamaları

“Innovation distinguishes between a leader and a follower” – Steve Jobs

1Proje Amacı

2Kullanılan

Teknolojiler

3Kuramsal Bilgiler

4Analiz Modelleme

5Tasarım

Page 3: Bitirme sunum

1 Proje AmacıNeden iCity uygulamasına ihtiyaç duyuyoruz ?

“It is fine to celebrate success but it is more important to heed the lessons of failure” – Bill Gates

Page 4: Bitirme sunum

Neden iCity Uygulaması ?

1. Şehri yakından tanımak

2. Arkadaş takibi yapabilmek

3. Akıllı yer önerisi yapabilmek

4. Ulaşım yardımı almak

5. Sosyal ağ entegrasyonu

6. Mobil dünyaya uyum sağlamak

Page 5: Bitirme sunum

2 iCity’de

Kullanılan Teknolojiler

“Design is not just what it looks like and feels like. Design is how it works.” – Steve Jobs

Page 6: Bitirme sunum
Page 7: Bitirme sunum

Kuramsal Bilgiler

“It’s fine to celebrate success but it is more important to heed the lessons of failure.” – Bill Gates

3

Page 8: Bitirme sunum

iCity – Kuramsal Bilgiler | Android Tanım

Android, Google ve Open Handset Alliance tarafından kodlanmış, Linux OS tabanlı bir mobil cihaz için geliştirilmiş, açık kaynak kodlu bir işletim sistemidir.

Android işletim sistemli bir mobil telefon için, Android SDK kullanılarak uygulama yazılımları geliştirilebilmektedir.

Projemizin ana çatısı android üzerine kurulmuştur.

Page 9: Bitirme sunum

iCity – Kuramsal Bilgiler | Android Kullanımı

Günümüzde Android işletim sistemli mobil telefonların sayısı hızla artmaktadır.

Page 10: Bitirme sunum

iCity – Kuramsal Bilgiler | Android Yapısı

Page 11: Bitirme sunum

iCity – Kuramsal Bilgiler | Android Yapısı II

Androidde uygulama JAVA dilinde geliştirilir. Android işletim sistemine göre tüm ekranlar birer activity dir. Activity ler kullanıcı ile etkileşimi sağlayan ekranlardır. Her bir activity kendine adanmış bir layouta sahiptir. Activityler birbirlerini çağırabilirler ve aralarında veri transferi yapabilirler.

Page 12: Bitirme sunum

iCity – Kuramsal Bilgiler | Android Yapısı III

Activityler, manifest dosyası adı verilen bir xml dosyasında tanımlanır.

• Uygulama clientler tarafından Google Play Store dan indirilirken kullanıcıdan istenecek izinleri ifade ediyor.

• Uygulamada activity olarak görev alacak olan sınıfları tanımlıyoruz.

• Uygulama bağımsız olarak çalışacak olan servisimizi tanıtıyoruz.

Page 13: Bitirme sunum

iCity – Kuramsal Bilgiler | JSON

JSON, veri alış verişini sağlamak amacıyla geliştirilmiş bir veri biçimlendirme yöntemidir. JavaScript Object Notation XML den çok daha kolay ve hızlı biçimde işlenebilme özelliğine sahiptir. XML ile biçimlendirilmiş bir veri kümesi, JSON ile biçimlendirilmiş veri kümesine oranla

daha fazla bellek alanı ihtiyacı doğurur.

Page 14: Bitirme sunum

iCity – Kuramsal Bilgiler | JSON – XML Karşılaştırması

XML JSON<?xml version="1.0" encoding="UTF-8"?><root>

<data> <id>1</id>

<name>PHP </name>

</data></root>

{ "data": [{

"id" : "1", "name" : "PHP” }]

}

var root = xhr.responseXML;var dataElements = root.getElementsByTagName('data'); var idElementsValue = dataElements[0].getElementsByTagName('id')[0].firstChild.nodeValue;var nameElementsValue = dataElements[0].getElementsByTagName('name')[0].firstChild.nodeValue;

data.name[0];

Page 15: Bitirme sunum

iCity – Kuramsal Bilgiler | JSON – Projemizdeki Kullanımı

Projemizde JSON kullanımı web servisimiz ile uygulamamız arasındaki iletişimi sağlamak üzerine kurulmuştur.

Bilgi almak üzere servise istek gönderilir.

Servis JSON nesnesi olarak dönüş yapar

Page 16: Bitirme sunum

iCity – Kuramsal Bilgiler | .Net Framework (C#)

.Net framework projemizde, uzak host ile iletişimi yaparken kullanacağımız web servisi oluşturmak için kullanılmıştır.

Web servisi, XML mesajlaşma tabanlı bir sistem entegrasyon yöntemidir. W3C tarafından yapılan resmi tanımıyla web servisi, bilgisayarlar arasında ağ üzerinden etkileşimi ve uyumluluğu sağlayacak yazılım sistemidir.

XML tabanlı mesajlaşma esas alınmıştır. Biz projemizde JSON ile haberleşmeyi tercih ettik.

Web servis erişim standardı olarak SOAP (Simple Object Access Protocol) adı verilen basit nesne erişim protokolü kullanılmaktadır.

SOAP sayesinde web servis ile basit ve mesaj tabanlı bir iletişim sağlanmaktadır. Projemizde .net c# ile kodlanmış olan ve uzak host da koşan bir webservis bulunmaktadır.

Page 17: Bitirme sunum

iCity – Kuramsal Bilgiler | PHP

PHP, özellikle Web için tasarlanmış olan, sunucu taraflı çalışan bir script dilidir.

Page 18: Bitirme sunum

iCity – Kuramsal Bilgiler | PHP – Projemizdeki Kullanımı

Projemizde PHP dilini, yüklü miktarda datayı her defasında tek tek bir api kullanılarak sorgulamak yerine, hangi datalara ilişkin bilgilere ihtiyaç olduğunu php sayfamıza gönderip, cURL ile sorgunun uzak hostta çalışmasını sağlamak için kullandık.

Foursquare Kullanıcı Sayısı : 27M1 Kişinin Ortalama Arkadaş Sayısı : 137

1090120912

3212326712

foursquareGetCheckins.php

Foursquare API

Kullanıcı

Arkadaş Listesi

cURL Log

Page 19: Bitirme sunum

Analiz ve Modelleme

“It’s fine to celebrate success but it is more important to heed the lessons of failure.” – Bill Gates

4

Page 20: Bitirme sunum

iCity – Analiz

Page 21: Bitirme sunum

iCity – Analiz

Page 22: Bitirme sunum

iCity – Analiz

Page 23: Bitirme sunum

iCity – Analiz

Page 24: Bitirme sunum

iCity – Analiz

Page 25: Bitirme sunum

iCity – Analiz

Page 26: Bitirme sunum

Tasarım

“It’s fine to celebrate success but it is more important to heed the lessons of failure.” – Bill Gates

5

Page 27: Bitirme sunum

iCity – Tasarım | İnternet Bağlantısının Algılanması

Page 28: Bitirme sunum

iCity – Tasarım | İnternet Bağlantısının Algılanması

Page 29: Bitirme sunum

iCity – Tasarım | İnternet Bağlantısının Algılanması

05-12 19:51:49.669: D/NetworkConnectivityListener(1307): onReceive(): mNetworkInfo=NetworkInfo: type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: (none), roaming: false, failover: false, isAvailable: true mOtherNetworkInfo = [none] mState=CONNECTED 05-12 20:14:00.524: D/NetworkConnectivityListener(1307): onReceive(): mNetworkInfo=NetworkInfo: type: WIFI[], state: DISCONNECTED/DISCONNECTED, reason: (unspecified), extra: (none), roaming: false, failover: false, isAvailable: false mOtherNetworkInfo = [none] mState=NOT_CONNECTED 

Page 30: Bitirme sunum

iCity – Tasarım | Login

Kullanıcı log in butonuna tıkladığında, açılan foursquare api web view ile uygulamamıza login olur.

Page 31: Bitirme sunum

iCity – Tasarım | Application Base

Page 32: Bitirme sunum

iCity – Tasarım | Login

Mobil uygulama kullanıcısının Foursquare Api ile iletişime geçebilmesi için ise sisteme oAuth ile login olması gerekmektedir. Buna göre;

1. Kullanıcı uygulamanın login paneline girer.2. oAuth güvenli authorization panelimiz açılır.3. Kullanıcı adı ve şifre girişini yapar.4. Kullanıcıya ilişkin bilgiler ile foursquare üzerinde koşacak olan api key foursquare

tarafına gönderilir. 5. Foursquare servisi kullanıcıyı login ettikten sonra access token dönüşü yapar.6. Kullanıcıya spesifik bu access token key ile, izinler dahilinde işlemler yapılmaktadır.

Page 33: Bitirme sunum

iCity – Tasarım | Login

Page 34: Bitirme sunum

iCity – Tasarım | Login

Page 35: Bitirme sunum

DEMO

iCity

Page 36: Bitirme sunum

iCity – Tasarım | Uygulama Ana Ekranı

Action Bar

Sub Activity

TabGroup

Page 37: Bitirme sunum

iCity – Tasarım | Uygulama Ana Ekranı

Page 38: Bitirme sunum

iCity – Tasarım | Son Check-in Yapılan Yerler

Page 39: Bitirme sunum

iCity – Tasarım | Son Check-in Yapılan Yerler

Page 40: Bitirme sunum

iCity – Tasarım | Son Check-in Yapılan Yerler

• Son check-in yapılan yerleri tek tek Foursquare api ile birlikte sorgulama yapmak oldukça performans düşürücü olacağından bu konuda akıllı bir çözüm üretilmiştir.

• Bu sebeple de www.yoncamodaevi.com/foursquareGetCheckins.php sayfası liste olarak kullanıcının arkadaş listelerini alır ve bu arkadaş listesine göre son check-in lerin listesi dönülür.

• Bu sayfada kullanıcıdan alınan access token ile CURL altyapısı kullanılarak sorgulama yapılmaktadır.

• Bu sayede sonuçlar mobil uygulamaya göre çok daha hızlı bir uzak server üzerinde toplu halde hesaplanır ve bu da oldukça akıllı bir çözüm olmaktadır.

Page 41: Bitirme sunum

iCity – Tasarım | Mekan Arama

Tablar üzerindeki yazılar kaymakta

Kategori kısıtlamaları (Akıllı Öneride Kullanılacak)

Her kategoriye ait alt kategoriler bulunmaktadır.

Page 42: Bitirme sunum

iCity – Tasarım | Mekan Arama (Kısıtlamalar)

Page 43: Bitirme sunum

iCity – Tasarım | Mekan Arama

Page 44: Bitirme sunum

iCity – Tasarım | Mekan Arama (Harita)

Page 45: Bitirme sunum

iCity – Tasarım | Mekan Arama (Harita)

Page 46: Bitirme sunum

iCity – Tasarım | Check-in Yapma Süreci

Page 47: Bitirme sunum

iCity – Tasarım | Check-in Yapma Süreci

Page 48: Bitirme sunum

iCity – Tasarım | Check-in Yapma Süreci

Page 49: Bitirme sunum

DEMO

iCity

Page 50: Bitirme sunum

iCity – Tasarım | Akıllı Yer Önerme

Kullanıcılar daha önce hiç gitmedikleri yerler hakkında bilgi edinebilmek istediklerinde akıllı yer önerme algoritması kullanılmaktadır.

Akıllı yer önermeyi sağlayabilmek için, kullanıcının sosyal ağ üzerinde yaptığı bir takım işlemleri, web servisimiz aracılığıyla kendi veritabanımızda tutmak suretiyle kayıt altına aldık.

Bu kayıtlar kişinin sevdiği ya da sevmediği yerler hakkında bilgilerin tutulması ve mekanlar hakkında puanlamanın yapılabilmesi için kullanılmaktadır.

Akıllı yer önermenin temel amacı kullanıcıya daha önce hiç gezmediği mekanları, daha önce gittiği mekanlardan ve arkadaşlarının gittiği mekanlardan yola çıkarak mantıklı biçimde önerebilmektir.

Page 51: Bitirme sunum

iCity – Tasarım | Akıllı Yer Önerme

Foursquare APIistek

istekkayıt

http://obenws.yoncamodaevi.com

Page 52: Bitirme sunum

iCity – Tasarım | Akıllı Yer Önerme

Page 53: Bitirme sunum

iCity – Tasarım | Akıllı Yer Önerme

Page 54: Bitirme sunum

iCity – Tasarım | Akıllı Yer Önerme

Page 55: Bitirme sunum

iCity – Tasarım | Akıllı Yer Önerme

PROCEDURE [dbo].[graduationSP_getUsersSuggestedVenues]

1. Check-in tablosundan kullanıcının daha önce gitmediği ve kullanıcıya yakın mesafedeki mekanlar getirilir.

2. Mekanların kategori bilgileri ilgili tablodan alınmakta ve sonrasında web servise dönderilmektedir.

3. Web servis daha önceden almış olduğu kullanıcının geçmiş check-in’lerinin kategori bilgilerine göre bu mekanlar arasında çok sevilenden az sevilene göre bir sıralama yapmaktadır. • Örnek vermek gerekirse; • İncelediğimiz kullanıcı daha önceden 3 kere fast food kategorili mekanda

ve 2 kez de eğitim kategorili mekanlarda check-in olmuş ise, sistem bu kullanıcı için fast food kategorisine sahip mekanı listede eğitim kategorili mekanlardan daha ön sıralara koyacaktır.

Page 56: Bitirme sunum

Teşekkürler. Sorular?“I am as proud of what we don’t do as I am of what we do.” – Steve Jobs

Oben ISIK – Gökhan KARACA