Senior Design ProjectHot’nCold use available internet connection of the mobile device that...
Transcript of Senior Design ProjectHot’nCold use available internet connection of the mobile device that...
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
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
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.
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.
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
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
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
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
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.
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].
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.
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:
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.
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.
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:
15
By clicking on the cross we can delete “Doğukan Oğuz Sert” from our friendlist.
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.
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.
18
The groups are seen like this. You can search group add a new group from the round button
down below the screen.
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.
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.
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