Senior Design ProjectHot’nCold use available internet connection of the mobile device that...

22
Bilkent University Senior Design Project Hot’nCold: Location based mobile application Final Report Elif Ağım, Cemil Kaan Akyol, Elif Yağmur Eyrice, Doğukan Oğuz Sert, Bahadır Ünal Supervisor: İbrahim Körpeoğlu Jury Members: Özgür Ulusoy, Uğur Güdükbay Progress/Final Report April 20, 2016 Project web page: http://hot-n-cold.weebly.com This report is submitted to the Department of Computer Engineering of Bilkent University in partial fulfillment of the requirements of the Senior Design Project course CS491/2 Department of Computer Engineering

Transcript of Senior Design ProjectHot’nCold use available internet connection of the mobile device that...

Page 1: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

Bilkent University

Senior Design Project

Hot’nCold: Location based mobile application

Final Report

Elif Ağım, Cemil Kaan Akyol, Elif Yağmur Eyrice, Doğukan Oğuz Sert, Bahadır Ünal

Supervisor: İbrahim Körpeoğlu Jury Members: Özgür Ulusoy, Uğur Güdükbay

Progress/Final Report

April 20, 2016

Project web page: http://hot-n-cold.weebly.com

This report is submitted to the Department of Computer Engineering of Bilkent University in partial

fulfillment of the requirements of the Senior Design Project course CS491/2

Department of Computer Engineering

Page 2: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

1

Table of Contents 1. Introduction .......................................................................................................................... 2

2. Final Architecture and Design of the System ...................................................................... 2

2.1. Overview ....................................................................................................................... 2

2.2. Subsystem Decomposition ............................................................................................ 3

2.3. Hardware/Software Mapping ........................................................................................ 4

2.4. Persistent Data Management ......................................................................................... 5

3. Impact of Engineering Solutions Developed in Project ....................................................... 6

3.1. Global Impacts .............................................................................................................. 6

3.2. Economic Impacts ......................................................................................................... 6

3.3. Societal Impacts ............................................................................................................ 6

4. Contemporary Issues Related with the Area of the Project ................................................. 7

5. New Tools and Techniques Used ........................................................................................ 7

6. Use of Library Sources and Internet Sources ...................................................................... 9

8. User’s Manual .................................................................................................................... 10

9. References .......................................................................................................................... 21

Page 3: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

2

1. Introduction

We communicate with lots of people in our daily life. What if we go somewhere and do not

know that there are some acquaintances? Or we go to a business meeting where there are

hundreds of people, what if we can filter the ones that are related to our field of study and go

to meet them? Hot’nCold makes it all happened. Hot’nCold is simply a people map which

shows the names and locations of the application users. Application works by taking the

users’ location using GPS services by applying some privacy issues, and shows them on the

screen of the cell phone. When the user get closer his/her friends the distance value is

updated accordingly. It enables the user to find out locational information about the other

users. Users does not only see the friends on the map, but also see by visual angle which

depends on phone is on what angle. In other words application just show the people which

are on the area of view. It will have two modes; business mode and social mode which

works as the names suggests.

The aim of this application is to find our friends and provide opportunity to meet other users

who can potentially be a good friend or a business partner.

2. Final Architecture and Design of the System

2.1. Overview

In this section the architectural patterns that is used in implementation of Hot’nCold will be

explained. Then subsystem decomposition of the system will be stated. Afterwards,

hardware-software mapping of the system will be examined. Finally, persistent data

management of the system will be stated.

Page 4: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

3

2.2. Subsystem Decomposition

Hot’nCold is composed of two architectural patterns. These are Model-View-Controller

(MVC), and Multi-Tier Client-Server architectural patterns. MVC is used to provide faster

and more accurate UI for clients. Control part gets the inputs from user . The system makes

necessary changes on the model part and according to those changes view in UI is updated.

Since Hot’nCold application is based on huge data searches and data flow between server

and the user, Multi-Tier Client-Server pattern is used to provide most recent and accurate

data for user.

Page 5: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

4

A. Model-View-Controller Architecture

Since Hot’nCold constantly interacts with the user, we adapted the Model-View-Controller

design into our system. With the aid of MVC, the system proposes accurate and fast

response to user. In MVC pattern, UI consists of model, view, and controller classes.

Control classes gets recent data from user and inform corresponding model classes about the

changes. Model classes makes the necessary computations according to new data and they

send the result to control classes. Control classes trigger corresponding view classes to

reflect changes on UI. In brief, control classes provide controlled data flow between model

and view classes.

B. Multi-Tier Client-Server Architecture

In order to apply multi-tier client and server architecture, the system is organized into

services, and clients access database server to make use of them [1]. Since, the application

requires huge data interaction and management between users, system and database for each

query that user make, the multi-tier client-server architecture is applied to the system. In a

multi-tier client-server architecture, there is a high volume of transactions to be processed

by database server and the layers of the system that are UI layer, data management layer

within the system [1]. With the aid of multi-tier client-server architecture general

functionality of the system, in this case it provides data for all active users and it is available

to large-scale clients.

2.3. Hardware/Software Mapping

Hot’nCold use available internet connection of the mobile device that supports Android

4.0.3 . The Android devices that supports Android 4.0.3 are able to use application. In other

words, the mobile device must have APK file that supports Android 4.0.3. The system uses

Amazon Web Services (AWS) as database and server. Android studio provides connection

Page 6: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

5

between AWS and the mobile devices. Apart from that,the system will use Facebook API,

since the system will collect personal user information via Facebook account.

2.4. Persistent Data Management

Since Hot’nCold is an online mobile application it requires portable database system.

Therefore, the system will use cloud based database system in order to avoid problems may

arise according to memory space in mobile devices. In order to get personal information

about user, Facebook and Linkedin accounts of user will be used. Therefore, there is no

need to keep personal information of users on the database. However, the geographic

location informations, created filter informations and groups will be kept in the database.

Furthermore, the system will use encryption of user email and password and coordinate

informations in order to protect users privacy and security. Moreover, we need to choose a

non-volatile database to always keep memory to up-to-date and data should be safe and stay

in a protected area after execution of the program is completed. On this purpose, we have

Page 7: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

6

chosen to use Amazon Web Services as a database due to fact that it provides all the

requirements mentioned above.

3. Impact of Engineering Solutions Developed in

Project

3.1. Global Impacts

There are many people in the world who did not have the chance to meet right people. For

example, two computer scientists in a conference who study on similar areas could achieve

great success together, but they might not meet or see each other forever. However, if one of

them uses Hot’nCold in the conference to look for colleagues who study on similar subjects,

they can meet and publish an article which can contribute to computer science. On the other

hand, being able to instantly know where your friends are will be a milestone during this age

of communication. For example, when you get lost, you can easily reach your closest friend

by the help of this application.

3.2. Economic Impacts

As an extra feature which is planned to be added in future, Hot’nCold will find solutions for

corporate companies who want to know their customer better. By fetching the data of the

users that are found in a specific area, companies can get information about the socio-

economic profile of those group of users and by the help of this they can give better

decisions on investments.

3.3. Societal Impacts

This project will make the social bonds stronger within the society. By the help of the

application, people will get the opportunity to meet other users who have the same interests

Page 8: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

7

with them. Society will become more interconnected. This application will break the

prejudice against strangers. Users will realize that a man can actually be a very good person

even though he looks awful, when they see his public profile information.

4. Contemporary Issues Related with the Area of the

Project

Privacy and accountability are contemporary issues related to our project. Privacy has

become a significant concern in modern society as personal information about individuals is

increasingly collected, used, and shared, often using digital technologies. To address privacy

concerns, companies such as Google and Facebook declare privacy policies. Our privacy

policy is that only the users who accept to share their location will be using our application.

5. New Tools and Techniques Used

A. Beacon for Indoor Places:

One of the most fundamental aims of Hot’nCold is providing other people’s exact location

information to the user. In Android device, exact location information can be found via GPS

with 95% accuracy in outdoor places. However, for indoor places accuracy of GPS

dramatically decreases. In order to design robuts and reliable application that gives,

approximately, 95% accurate results in both outdoor and indoor places GPS combined with

Beacon property.

Bluetooth Low Energy (BLE) beacons enables user to find relative distances in indoor

places. In general usage of beacons, there are two types of beacon; one is advertiser and the

other is scanner. Advertiser beacons are fasten on stable places and their coordinates are

kept in the external data storage with their id. On the other hand, scanner beacons can be

Page 9: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

8

considered as mobile devices and they are unfasten beacons and by scanning advertiser

beacons, they gives exact location of the user. Basically, the idea behind beacons similar to

GPS satellites in some extent. If more than three advertiser beacon are visible by scanner

beacon more accurate location information can be gathered.

In order to increase indoor accuracy of Hot’nCold, advertiser, and scanner beacon properties

integrated into application, that means unfasten Android device become both advertiser and

scanner. Whenever, GPS signals are weaken in indoor places, beacon properties intervene in

location calculation process. Since, fasten property of advertiser beacons violated, there is

an outcome. On one hand, beacon property in app provides more accurate indoor location

information to user. On the other hand, this is actually relative distance information not an

exact location. Application is able to give other users’ location on circle with radius equal to

distance since it cannot get information about relative directions of users.

B. Android Studio

We had to use Android Studio as an IDE to develop our android application. It is the official

IDE for Android app development, based on IntelliJ IDEA. Android Studio offers features

that triggers your productivity when building Android apps, such as a Gradle-based build

system (although it is a good build system, it is a very slow system for the computers which

do not have large random access memory), build variants and multiple APK file generation,

code templates to help you build common app features, rich layout editor with support for

drag and drop theme editing and code shrinking with ProGuard and resource shrinking with

Gradle. It was a good opportunity to learn a very powerful IDE such as Android Studio.

C. GenyMotion

It is an Android Emulator and it performs much better than Android Studio’s emulator.

While it can take hours to open an emulator in Android Studio in low-performance

computers, the emulator which is provided by GenyMotion can be opened in few minutes.

Page 10: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

9

Since some of our friends do not have Android phones, GenyMotion was very useful to test

our application during the implementation.

6. Use of Library Sources and Internet Sources

A. Circle Image View Library:

Hdodenhof’s circle image view library is used to show user Facebook profile pictures in

circle view[1]. This is used in navigation view and also in list views to provide more elegant

user interface.

B. Glide 3.7.0 Library:

Bumptech’s glide library is used to load Facebook image into circle image view via

URL address of the user’s profile picture [2].

C. Swipe Layout Library:

Daimajia’s swipelayout library is combined with recyclerview to provide more elegant and

user friendly user interface [3].

D. Google Maps Android API Utility Library:

Google Maps Android API Utility library is used to get provide clustered profile image view

of other users on the Google map [4].

E. Eddystone Open Beacon Format:

Eddystone open beacon format used to integrate beacon properties into project [5].

F. Bearded-Hen’s Android Bootstrap Library

It is used to improve the user-interface of the login page [6].

G. Jwetherell’s Augmented Reality Library

It is used to show contacts on the augmented reality view[7].

Page 11: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

10

8. User’s Manual

When you first open Hotn’Cold you can see this screen below:

You register Hot’nCold with your Facebook account. Clicking on Continue button you can

move on.

Page 12: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

11

As you login to HotnCold, you first see a map that shows online users, your facebook

friends that uses HotnCold. By clicking on the marker which is on the map, you can go to

your friend’s profile. By clicking the button on the left side of the toolbar, you can open the

navigation bar which is shown below:

Page 13: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

12

As you can see, in the navigation bar you have the options such as Map, Profile, Camera,

Switch Mode, Filter, Groups, Settings and Logout. You can go to each screen by clicking on

the corresponding entry in the navigation. If you click on the profile picture on the

navigation, you go to your profile.

Page 14: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

13

The image shown above is your HotnCold profile. It includes information such as the pages

that you like on facebook (Movies, music etc) when you click on the green button you can

see your friendlist.

Page 15: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

14

The image above shows your friendlist in HotnCold. By clicking on, you can go to your

friend’s profile. If you swipe to the left you have an option to delete your friend by

HotnCold application as we can see from the screenshot below:

Page 16: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

15

By clicking on the cross we can delete “Doğukan Oğuz Sert” from our friendlist.

Page 17: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

16

In the navigation, if you click Search button, you open this view below:

In the search, we can see our friends, we can search them. We can also search all the

HotnCold users and add them as friend.

Page 18: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

17

We can see the search below:

In HotnCold, you also have an option to create group from your friendlist, and make a filter

that only that group will be viewed on the Camera.

Page 19: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

18

The groups are seen like this. You can search group add a new group from the round button

down below the screen.

Page 20: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

19

You can create a group like from the screen above. By swiping you can add your friends to

group (clicking on the yellow add friend button) by clicking the blue check button, you can

confirm your group(group is created) and go to the Groups screen.

Page 21: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

20

When you click the Camera on the navigation bar, you see the screen above. It allows you to

find your friends from camera. By holding and moving your phone, it shows your friend

nearby. It also shows how many meter your friends are away from you. You can set the

radius from the bottom of the camera view. It shows your friends nearby within the radius.

If you click on the picture in the camera view, you can go to the profile of the selected

friend. In In the left corner you can see the radar, like on the flight towers.

Page 22: Senior Design ProjectHot’nCold use available internet connection of the mobile device that supports Android 4.0.3 . The Android devices that supports Android 4.0.3 are able to use

21

9. References

Links of sources and libraries that are used:

[1] https://github.com/hdodenhof/CircleImageView/tree/master/circleimageview

[2] https://github.com/bumptech/glide/releases

[3]https://github.com/daimajia/AndroidSwipeLayout/tree/master/library/src/main/java/com/

daimajia/swipe

[4] https://developers.google.com/maps/documentation/android-api/utility/

[5] https://github.com/google/eddystone

[6] https://github.com/Bearded-Hen/Android-Bootstrap

[7] https://github.com/phishman3579/android-augment-reality-framework