Upload
hoanghanh
View
212
Download
0
Embed Size (px)
Citation preview
Senior Design Project
Project short-name: AutAware
High Level Design Report
Group Members: Erdem Adaçal, Hüseyin Emre Başar, Emre Gürçay, Çağatay Küpeli, Alper Mehmet Özdemir
Supervisor: Özgür Ulusoy Innovation Expert: Deniz Katırcıoğlu Öztürk
Jury Members: Selim Aksoy and Halil Altay Güvenir
Progress Report
Dec 31, 2018 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.
Table Of Contents
1. Introduction 1.1. Purpose of the System 1.2. Design Goals
1.2.1. Usability 1.2.2. Reliability 1.2.3. Security 1.2.4. Scalability 1.2.5. Performance 1.2.6. Supportability 1.2.7. Extensibility
1.3. Definitions, Acronyms and Abbreviations 1.4. Overview
2. Current System 2.1. Spectrum 2.2. Autism Society 2.3. Autism Forums (Asperger’s & Autism Community) 2.4. Otsimo
3. Proposed Software Architecture 3.1. Overview 3.2. Subsystem Decomposition 3.3. Hardware/Software Mapping 3.4. Persistent Data Management 3.5. Access Control and Security 3.6. Global Software Control 3.7. Boundary Conditions
3.7.1. Initialization 3.7.2. Termination 3.7.3. Failure
4. Subsystem Services 4.1. Client
4.1.1. Presentation Layer 4.2. Server
4.2.1. ApplicationLogic Layer 4.2.2. InformationLogic Layer 4.2.3. DataManager Layer
5. Glossary
1
1. Introduction
Autism is a complex neurobehavioral condition that affects social interaction,
development language and communication skills [1]. However, it has many
symptoms and effects on individuals. Depending on the impairment levels individuals
may have a normal life otherwise they may a devastating disability that may require
and institutional care.
Autism do not only affect the individuals also their families are affected by this
complex neurobehavioral condition. In Turkey it is believed there are 1.5 million
individuals with autism. If we also include families, autism affects 4.5 million people
in Turkey [2].
Parents of children with autism require reaching communities for their unique
situations. In recent researches it was found that giving parents opportunities to
express their likes and dislikes about support networks can lead to identifying how
support networks can be more effective and accessible to parents and families [3].
However, in Turkey it is difficult to find much information about autism.
In the website of Autism Foundation in Turkey it was shown 83 centers exist in
Turkey where people with autism can go get help from professionals [4].
Nevertheless, it is difficult to find information about most of those centers. Many of
them have no website or blog where people can see their information. For a disorder
in which special care and education is important this creates a huge problem for the
families. Researchers conclude most of the families in Turkey have problem with
reaching information about autism and those centers [5]. Also, parents require
support groups to share their stories with other families and form a solidarity.
Many families in Turkey do not send their children to autism centers and get special
care due to insufficient information. For such a complex neurobehavioral condition
not getting special care may have some serious effects on those children.
Idea of AutAware aims to solve all the problems described above with one platform.
3
1.1. Purpose of the System
AutAware is an mobile/web application that serves as a hub to connect parents and
guardians of autistic children with information and with each other in order to help
them provide better care for their children. Autism is a serious issue; however, there
is not a centralized information center for parents/guardians to learn developments
and news regarding autism. AutAware will be made to address this issue. The
application will collect news articles regarding autism and convey them to the users.
It will allow users to create events similar to meetups which will serve in creating a
community that helps each other out. It will allow users to post their problems and
solutions to problems they have overcome. By combining all these functionalities we
intend to create an app that will serve a go-to hub for parents/guardians struggling to
give better care for their children.
1.2. Design Goals
1.2.1.Usability
● The application needs to have a user friendly interface that can be easily
understood, and used by people of different education levels.
● The application needs to be freely accessible on Google Play Store for
android devices, and on the Google Chrome web browser.
1.2.2.Reliability
● The application needs to be stable, and avoid any interruptions/crashes.
1.2.3.Security
● User information needs to be safe from third parties to preserve privacy. Only
authorized person, an admin, or the owner of the account can access such
information.
4
● The application needs to encrypt user information to avoid security problems
that are related to database. Therefore, somebody who has access to
database will not be able to get the user information.
1.2.4.Scalability
● The application needs to have databases that can scale effectively for
potential user growth.
1.2.5.Performance
● The application should effectively crawl the web looking for autism related
news and articles in fixed intervals of time.
● Load time of the web-based application should be low.
● Uptime of the web-based application should be high.
1.2.6.Supportability
● There will a user study right after each iteration of the project to improve
usability of the application. Depending on the feedback, design of application
can be extended or simplified.
1.2.7.Extensibility
● As it was stated in supportability, application may need to include new
features so it should be open to modifications and addition.
1.3. Definitions, Acronyms and Abbreviations
React: JavaScript library for building web user interfaces
ReactNative: JavaScript library for building native mobile user interfaces
UI: User Interface
HTTP: Hypertext Transfer Protocol
TCP: Transmission Control Protocol
API: Application Programming Interface
REST: Representational State Transfer
5
MD5: A widely used hash function to generate 16 byte hash values.
SHA256: A cryptographic hash that generates 32 byte signature. In our case will be
used to encrypt private data.
1.4. Overview
There is limited information regards to autism written in Turkish. AutAware aims to
create a community where people can share their own experience or get advice
about what they should do in certain situation. The main purpose of forum system in
AutAware designed for this purpose because the best advice comes from people
who already experience that particular problem.
We identified another problem while looking for solutions. Due to their sickness, most
of the autistic people lack social skills, and parents of autistic children do not allow
them to go out and socialize for justified reasons. However, these people will not
stay child forever; therefore, they need to get better at interacting people. As a result,
event creation system will be designed for AutAware.
Periodically, system will update its data to provide latest article/new regards to
autism to make people understand this unfortunate situation even more, or provide
additional information. This way, parents or guardians will give better care for
unfortunate soul.
2. Current System
In this chapter, we will give information about the systems on the market which are
similar in terms of some points to our proposed system. At the end, we will explain
how our proposed system differs from these current systems in detail.
2.1. Spectrum
Spectrum is a web application which is the leading source of expert opinion and
news about autism in the market. [6]
● This application is a web application it is not possible to find a mobile version
of it.
6
● They provide a wide range of Autism related content.
● As they have experts who are specialized in this area they are able to prove
expert opinions about Autism news and syndromes.
● Users can browse articles about different topics such as diagnosis,
treatments, environment etc.
2.2. Autism Society
This is the web application of The Autism Society of America. They provide autism
related content such as information about autism, the latest news and user stories,
with and aim to improve lives of the people who are affected by autism. [7]
● This application is only offered in web platform.
● Users can see information about the Autism disorder.
● Users can see blog posts about Autism however users cannot create blog
contents.
2.3. Autism Forums (Asperger’s & Autism Community)
Autism Forums is a web application to discuss Aspergers Syndrome, Autism, High
Functioning Autism and related conditions. [8]
● It is available on the web.
● Users can reply on discussions and create their own threads.
● Users can chat in chat rooms.
● Users can create blog posts share their stories.
2.4. Otsimo
In the mobile platform, Otsimo is the only Autism related high quality app that is
found on the AppStore currently. Unfortunately, it is not possible to find autism
related apps for the mobile platform. Otsimo is a Turkish company and they are
producing special kind of games with an aim to educate children with autism. They
also provide autism related news and information on their website to maximize the
awareness. [9]
7
All of these apps are aimed to maximize awareness about autism but they all have
one missing point. They don’t provide user related content. One of the main things
that we are trying to do in our application is to provide information and content to our
users which they might be interested in. Also it is not possible find applications that
provides information and user comments about the autism centers.
3. Proposed Software Architecture
3.1. Overview
In order Autaware to function properly, application is divided into many subsystems.
This part of the report aims to show, how Autaware’s subsystem is decomposed.
Subsystem Decomposition aims to declare the design structures of subsystems and
layers in detail. Divided subsystems are shown with thier main important classes as
layers. Later detailed information about system’s mapping of hardware/software is
given. In the persitent Data Management section it is explained how we will store
gathered information. Information about access boundries and security management
are defained in the access control and security. In global software control we explain
how the server acts for the client requests. In addition to these, each subsystem is
explained in details to show how our system functions. Relations among subsystems
can be seen on diagrams.
8
3.2. Subsystem Decomposition
AutAware is an application that relies mostly on the data management and retrieval.
So, it is important for to provide reliable, fast and effective data streaming between
client and server. AutAware relies on the Client-Server architecture. Client will rely
on the server for information. On the client side AutAware handles the data
presentation by using ReactNative. AutAware relies on the 4-Tier system
architecture. Our subsystems are Presentation Tier, ApplicationLogic Tier,
InformationLogic Tier and Data Logic Tier respectively.
Presentation Tier will mostly rely on the information that comes from the
ApplicationLogic Tier such as events, contents, user information etc. Most of critical
information about handling events, users, contents and and network are done in the
server side ApplicationLogic Tier.
Information retrieval and management are handled on the InformationLogic Tier. The
reason for us divide this as a different subsystem is to increase the persistence
capabilities of information retrieval and machine learning applications.
InformationLogic Tier relies on the DataLogic Tier store the handled data. DataLogic
Tier is liable on persistent data management and storing.
10
3.3. Hardware/Software Mapping
Figure 3. Hardware/Software Mapping
AutAware is an application that will run on Android devices along with a web
application version which will run on browsers. The application logic and database
will run on a Google Cloud server. The client will access the server with a HTTP
connection and the server will connect to the database.
The web application will run JavaScript in the background and will send the
appropriate requests to the application logic using HTTP. The Android application
will run on Java and will send appropriate request to the application logic using
HTTP as well. If the application logic needs to access the database to respond to
requests sent by the client side, necessary information will be retrieved through a
TCP connection.
3.4. Persistent Data Management
AutAware will hold user information, event information, posts, and news. Because
news will be long strings of text and we will perform comparison tests on the news
we will be using MongoDB as a NoSQL database for increased performance. We will
be hosting our database on Google Cloud Services for ease of access and
12
availability. We will use MongoDB Atlas to host our database on Google Cloud. User
information, posts and event information are more suitable for a relational database,
however we didn’t want to split our data. Therefore we decided on using MongoDB
to store all of our data.
3.5. Access Control and Security
Each user will provide their full name, a username, a password and an e-mail
address when they register to the system. All credentials must be valid. The
username and e-mail address must be unique. The password of the user will be kept
in the database with encryption and be encrypted with MD5 or SHA256, but this may
change as we test our application. Only the user will have access to his/her personal
data. Other users will not be able to access other users’ personal data.
Users’ will be able to freely access event information, news information and posts.
However they will not be able to modify them in any way. The only exception is the
modification of event information by the user who created that event. Apart from
these admins will be able to remove posts and news.
3.6. Global Software Control
In AutAware the global software control will be mostly dependent of the server side.
It will be an event driven control system.
Requests will mainly be initiated by users. The only concurrency issue would be
when multiple users request to join an event when there is an insufficient quota. We
will use synchronized java methods to overcome this problem.
3.7. Boundary Conditions
This section consists of three sub-sections. These are the following.
3.7.1. Initialization
The mobile application requires an Android device to run. The user have to
download the application to the device via Google Play Store. The user can use all
13
functions of the application after creating an account and logging in with that
account.
3.7.2. Termination
The user will be able to logout of the application by clicking on the “Logout” button
located on the “Profile” page. If the application is terminated the user will be logged
out of the system. If the user opens the application they will be logged in immediately
if they activated the “Remember Me” function beforehand.
3.7.3. Failure
In the case of an internet connection failure, the user will not be able to load/ change
information as the connection with the server has been severed.
4. Subsystem Services
4.1. Client
4.1.1. Presentation Layer
Figure 4. Presentation Layer
Presentation layer contains the React and ReactNative class. It is the layer where
interaction between the user and the program occurs. The ReactInterface class is
responsible for user interaction in the web application of the client side, and the
14
ReactNativeInterface class is required for user interaction in the mobile application of
the client side.
● ReactInterface: The ReactInferface class is responsible for the web
application side of the client. It provides a user interface for the user to access
information and and create new content and events by sending REST request
through an HTTP connection to ApplicationLogic layer.
● ReactNativeInterface: The ReactNativeInterface class is very similar to the
React class in its responsibilities and functionalities. The only difference is it
responsible for the mobile application side of the client.
4.2. Server
4.2.1. ApplicationLogic Layer
Figure 5. ApplicationLogic Layer
Application logic layer is the core of the system and is where all requests are
handled. It also connects the client to server. It exists in a cloud hosted server. There
are five classes in this layer: UserManager, ContentManager, EventManager,
ReportManager, NetworkManager.
● UserManager: UserManager class is responsible for managing user
information. When a user wants to change their account information,
UserManager will be used for sending the request to Information Layer.
● EventManager: Users will be able to create, edit and join events.
EventManager will be used for every event related activity.
15
● ContentManager: The ContentManager class is responsible for the creation,
modification and deletion of content objects (news, posts, comments). It
handles the reporting system and alerts administrators when a content
receives a significant amount of reports. It serves as an intermediary between
the client and the database for all content type objects.
● MessageManager: Users are able to send messages using a chat box.
MessageManager will make sure that everyone receives the right message.
● NetworkManager: NetworkManager is responsible for server and client
connection.
● ReportManager: Users are able to report the content they think is disturbing
or not related. ReportManager will organize these reports for admin.
4.2.2. InformationLogic Layer
Figure 6. InformationLogic Layer
InformationLogic Layer contains UserClassification, WebCrawler and
SimilarityChecker class. It is where the data is processed to provide personal
experience for each user.
● UserClassification: One of the main selling of AutAware is to provide
personal experience for each user depend on their user information. Personal
experience includes content of showing advertisements, content order, event
order, etc.
● WebCrawler: AutAware includes news system to provide more information to
users. WebCrawler will gather the required information from other important
pages. The projey
16
● SimilarityChecker: SimilarityChecker is responsible for filtering duplicate
news.
4.2.3. DataManager Layer
Figure 7. Data Manager Layer
The DataManager layer exists in the Google Cloud Server. This layer contains the
DatabaseManager class which is responsible for storing all user, content and other
data. It will be connected to the InformationLogic layer and send/receive necessary
data to/from the Information Logic layer.
● DatabaseManager: DatabaseManager class is located in the data
management layer. It is responsible for storing the data collected from
ApplicationLogic layer and WebCrawler class. In the database user, event
and content information are stored.
5. Glossary
We planned to run the server of the application on a Virtual Private Cloud. Our
server will run on Google Cloud Platform. Google Cloud Platform provides services
and infrastructure that develop highly scalable applications[10]. We will also set up
our database on Google Cloud Platform to make it easier to connect with the server.
For the database, we will use MongoDB Atlas. MongoDB Atlas integrates with
VPCs(Virtual Private Cloud) to create a database on the cloud.
17
https://www.webmd.com/brain/autism/understanding-autism-basics#3
[Accessed 13.10.2018]
[2] Otizmli Çocuğa Sahip Ebeveynlerin Otizm Tanılama Sürecinde ve Tanı
Sonrasında Yaşadıkları Deneyimlerine İlişkin Görüşlerinin İncelenmesi.
http://dergipark.gov.tr/intjecse/article/107930 [Accessed 13.10.2018]
[3] The Relationships Among Adaptive Behaviors of Children with Autism, Family
Support, Parenting Stress, and Coping.
https://www.tandfonline.com/doi/pdf/10.3109/01460862.2011.555270?needAc
cess=true [Accessed 13.10.2018]
[4] Bakım ve Rehabilitasyon Merkezleri.
https://www.otizmvakfi.org.tr/bakim-ve-rehabilitasyon-merkezleri/
[Accessed 13.10.2018]
[5] Yaygın Gelişimsel Bozukluk Tanılı Çocukların Anne-Babalarının Yas
Tepkilerinin, Evlilik Uyumlarının ve Sosyal Destek Algılarının İncelenmesi.
http://dergipark.gov.tr/download/article-file/159121 [Accessed 13.10.2018]
[6] About. https://www.spectrumnews.org/about/ [Accessed 08.11.2018]
[7] About the Autism Society.
https://www.autism-society.org/about-the-autism-society/
[Accessed 08.11.2018]
[8] Asperger’s & Autism Forum https://www.autismforums.com/blogs/
[Accessed 08.11.2018]
[9] Our Story. https://otsimo.com/en/ [Accessed 08.11.2018]
[10] Website & WebApps Solutions. https://cloud.google.com/solutions/websites/
19
[Accessed 28.12.2018]
[11] Fully Managed MongoDB, hosted on AWS, Azure and GCP.
https://www.mongodb.com/cloud/atlas [Accessed 28.12.2018]
20