21
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.

S e n io r D e sig n Pr o je ct Level Design Report.pdf · 1. Introduction Autism is a complex neurobehavioral condition that affects social interaction, development language and

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

6. References

   

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.

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.

● 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

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.

● 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]

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.

Figure 1. Subsystem Decomposition

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 

Figure 2. Subsystem Decomposition in detail

11 

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 

 

 

 

 

 

6. References

[1] Understanding Autism.

18 

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