Sie sind auf Seite 1von 23

The Quick

Anxiety Kit
(QAK)
Final Design Document

CSC413 Advanced Software


Development I

Contents
Contents.................................................................................................................................................................................. 1
Revisions History.................................................................................................................................................................... 2
Abstract................................................................................................................................................................................... 3
Project Description.................................................................................................................................................................. 4
Usage Scenario................................................................................................................................................................... 4
Project Objectives............................................................................................................................................................... 5
Interaction Diagrams............................................................................................................................................................... 6
Class Diagram......................................................................................................................................................................... 7
System Architecture................................................................................................................................................................ 7
User Interface Design & Implementation............................................................................................................................... 8
GUI Design........................................................................................................................................................................ 9
Testing................................................................................................................................................................................... 10
Games Tappy Cat........................................................................................................................................................... 10
Breathing Application.......................................................................................................................................................12
Music Player..................................................................................................................................................................... 14
Project Management............................................................................................................................................................. 15
Team Members................................................................................................................................................................. 15
Game Artists................................................................................................................................................................ 15
Game Design................................................................................................................................................................ 15
Programmers................................................................................................................................................................ 15
Project Coordination......................................................................................................................................................... 16
Breakdown of Responsibilities.................................................................................................................................... 16
Plan of Work..................................................................................................................................................................... 17
Agile............................................................................................................................................................................ 17
Estimated Schedule...................................................................................................................................................... 18
Sprint Breakdown............................................................................................................................................................. 19
Sprint One 9/28-10/4 Week 4.................................................................................................................................19
Sprint Two 10/5-10/11 Week 5...............................................................................................................................19
Sprint Three 10/12-10/18 Week 6..........................................................................................................................20
Sprint Four 10/19-10/25 Week 7............................................................................................................................20
Sprint Five 10/26-11/1 Week 8...............................................................................................................................20
Sprint Six 11/2-11/8 Week 9..................................................................................................................................21
Sprint Seven 11/9-11/15 Week 10..........................................................................................................................21
Sprint Eight 11/16-11/22 Week 11.........................................................................................................................21
Sprint Nine 11/23-11/29 Week 12..........................................................................................................................22
Sprint Ten 11/30-12/6 Week 13..............................................................................................................................22
Sprint Eleven 12/7-12/13 Week 14........................................................................................................................22

Revisions History
Version 1.0 12/14/2015 Nicholas Diley Creation of Document & Initial Design
Version 1.1 12/15/2015 Nicholas Diley Sprint Breakdown & Class Diagram/System Diagram
Version 1.2 12/15/2015 Nicholas Diley Addition of System Architecture & Figure Details
Version 1.3 12/16/2015 Nicholas Diley Added music player data & pushing changes based on
previous revisions

Abstract
The purpose of this application is to suit the requirements for the University of Advancing
Technology Advanced Software Development I (CSC413) class. This project not only fulfills the
class requirement of software development, but also that of fulfilling the Student Innovation
Project (SIP) for the class. It also suffices as a strong portfolio item that may benefit large
amounts of users who suffer from anxiety related attacks/afflictions. This application will serve
as a tool aid in the remediation, but not as replacement for any medical treatment.

Project Description
Quick Anxiety Kit is an application across multiple platforms with the aim of helping those
experiencing anxiety. It will do so by using artistic components shown to calm those experiencing
anxiety. These components include the color scheme, pictures, videos, and mini-games. It will be
interactive and learn what the user likes and what calms them down. Over time it will be able to
recommend something to calm them down and check up on them through notifications. The app will track
when the user typically feels anxiety and give them a reminder that the app is there when they need it and
applaud/encourage them when they have had their anxiety under control for some time.
Its main function is to help reduce the effects of anxiety and panic. Some of its functions will be its minigames, user tracking* (giving its users a more personal and useful experience). There will be white noise
(calming audio tracks), calming pictures, and deep breathing tips. Some possible functions will be a
suicide hotline (serious cases of anxiety tend to tie into depression and other major mental health issues)
or emergency numbers.
*will include learning the user and suggesting games or methods that coincide with what they use within
the apps. It will also help track the user's anxiety or panic attacks and send them notifications when they
would normally have an attack and ask if the user needs assistance. It will also send notifications of
congratulations if the user has not had an attack for an extended period of time.
Technologies Android Studio, MySQL/SQL Management Studio, Visual Studio 2012/2013/2015, Unity

Usage Scenario
About 18%, over 40 million, of the U.S adult population experiences an anxiety disorder. This application
is for any one of those people. Those with frequent attacks could use this to help them calm themselves
and minimize the impact it has on them. This includes utilizing breathing exercises as used throughout the
industry as a calming technique, playing simplistic games to distract the user and to aid in settling down,
or listening to an assortment of audio tracks meant to calm the user as well. All of these functions are to
be implemented into one cohesive application for the user to open and keep track of frequent episodes and
to see a graphical representation of their recovery process.
QAK will be available to any user with a compatible Android phone or tablet through download on the
Google Play store, with potential through a standalone APK file free of charge. QAK is meant to be an
application available free of charge to anyone and everyone, forever. There are plans of releasing to iOS,
however this remains a stretch goal.

Project Objectives
The anticipated objectives for this project are as follows:

Find out what helps people relieve their anxiety


o Numerous sources are to be obtained for best practices and procedures
Create calming artistic components based on the research
Decide on platform of development & corresponding software for development
o Android
Android Studio
Unity
o iOS
o Windows Phone
Create a base application with advanced features, but simplistic intuitive design implementing the
art including:
o Integrated music player
o Timed breathing application
o Sources on where to request assistance
o User metrics tracking and recovery
o Simplistic games to aid in recovery
Innovate a category of mobile applications:
o Interactive
o Artistic
o Simplistic
Release onto the Google Play store for download
SIP Pitch: Quick Anxiety Kit (QAK)

Interaction Diagrams
The key interactions for QAK are the ability for the user to transition between each of the scenes that
exist within the application. This is accomplished by calling functions to transition scenes and returning
these afterwards as well. This would be starting from the Main Menu, and upon touching the icon to the
section the user wishes to go to, where the request is sent out and returned you will find the transition,
where it works both ways as well. Once in the new scene, you can make your way back by utilizing the
back button/function.

Figure 1.1 QAK interaction Diagram


Through a menu interface, the GUI is simplified to allow for easy access and navigation for the user,
using vibrant colors against the dark background.
See <GUI Design> section for more information.

Class Diagram
The classes within QAK are defined for navigation between the different scenes and activating specific
functions within the application. This would include the Main Menu being able to navigate to each
different scene, such as the Game, Breathing Application, Music Player, Settings, and User Metrics. The
latter would include functions to begin the applications or tasks, read from files, load files, and other
generalized settings.

Figure 2.1 Class Diagram for QAK functionality


Through a menu interface, the GUI is simplified to allow for easy access and navigation for the user,
using vibrant colors against the dark background.
See <GUI Design> section for more information.

System Architecture
Unity Version x.xx
QAK is built in Unity, which allows for the complex usage of assets and resources within a centralized
location. This allows for the quick distribution of game objects and creation of scenes, where each
function of the application is run on the backend through scripts that are tied into the buttons created. This
allows for the usage of games within the base software application to running alongside a standalone
music player, breathing application, and storage/management of metrics and file read/write capabilities.

User Interface Design & Implementation


Since the Quick Anxiety Kit is a mobile application, the QAK team is taking high consideration into the
development of the Graphical User Interface (GUI) that will be utilized. Focusing on easy to read fonts
and coloring schemes, it is meant to be a pleasant experience for any user.

Initial Concept
Below is the initial prototype decided for the Quick Anxiety Kit. This includes the base functions that are
to be expected from this application, including but not limited to:

Notifications from the application


User Metric Tracking
Integrated Music Player
Timed Breathing Application
Various Games

Figure 3.1 Initial model for the QAK interface


This model emphasized the usage of simplistic design and colors to be visually appealing and calming to
the end user. This would be furthered by usage of pastel colors, simple menus, and colorful representation
based on the application. They are meant to simplify the navigation process as each button will have a
clear cut meaning and purpose, as they will navigate to the proper section of the application.
8

GUI Design
The Graphical User Interface (GUI) of QAK has remained the same since initial conception, emphasizing
the usage of a simple interface with advanced controls on the back end. QAK was developed within
Unity, which allowed for the usage of many assets, including sound and graphics, which would further
emphasize the creation of the application.

Figure 4.1 Screen capture of new GUI design for QAK


The home menu has generally remained the same, where one would have access to navigate to various
sections of the application, including the Music Player, Games, Breathing Application, User Statistics,
and Settings. Simple icons with graphical representation of what they are for are available upon entering
the home menu. Utilizing a darker background such as the Violet will allow for the other colors to
become more vibrant, for a pop that will be easily recognizable in what they will do, and limiting the
amount of icons will leave no room for trouble in regards to navigation of the application.

Testing
Below you will find the test cases within the Quick Anxiety Kit (QAK) in regards to the testing stages and
developmental process taken thus far. See <Project Coordination> section to see which team members
worked on each piece.

Games Tappy Cat


Tappy Cat is the game that was initially conceptualized at the beginning of the project. It is based off of
other simple games that urge the user to focus on a specific point, where this point is a cat. The cat will
move from one side to the next, and will eventually settle on a spot until the user taps it. An on-click
function is defined so that a score can be kept when the cat is tapped, and will also cause the cat to get up
and to move to a new section.

Figure 5.1 Idle of the Cat when not being interacted with
There are currently plans of adding in new characters into the game, along with sounds and music
however these have yet to be implemented. The expected outcome will be for the cat to make a noise
upon being tapped, and the possibility for different types of game modes is still in process.
As it stands, there will be no leaderboard or any kind of highest score system in place, as this is meant
to be a relaxing game. The game currently runs indefinitely until the user is satisfied, however this may
change as development furthers.

10

Figure 5.2 Picture of the cat moving to a new location


The game is meant to distract the user as it would hold the users attention as the cat moves from one side
of the screen to the other. As it moves, the objective is to tap on it (the cat), and should the user be
successful, it will make noises accordingly. Settings will exist where the game will begin with the cat
moving horizontally one side to the other with an initially slow speed, but may increase the more the user
taps on it. It could be moving in other directions across the screen, including vertical and diagonal
movement, as well based on previous settings.
This is meant to be a relaxing exercise, with various settings in place where the game will consist of
simple movements encouraging breathing exercises and having calming music playing in the background.
The game's design would be discouraged from having sudden or erratic movements or a gain of speed that
would cause the user to become discouraged or disoriented.

11

Breathing Application
Many anxiety sufferers breathe too fast and shallow. When confronted with a feared scenario they breathe
rapidly which leads to increased shortness of breath and further hyperventilation. Breathing exercises can
help with a variety of anxiety issues such as a fear of public speaking, however they are only part of the
work needed to mitigate a person's anxiety.
With this in mind, QAK has an embedded breathing visualizer where the user is encouraged to breathe in
slowly along with the application to stabilize and help through the breathing exercise. The Settings allows
the user to customize the application to suit their needs where they see fit.

Figure 6.1 Breathing App not in use, showing an empty blue bar with buttons for navigation & use.
The application is set on a timer that is preconceived and can further be customized in regards to a bar
that will fill over time with the application (see below).

12

Figure 6.2 Breathing App in use, with the blue bar being filled green to encourage user to breathe
according to the prompts on screen.
Our users may have Panic Disorder or Social Phobia, so this deep breathing exercise may be the single
most important coping technique that can be exercised.. It's also useful with other anxiety disorders in
which the physical symptoms are less prominent, but still present. Comfortable, deep breathing is the key
to relaxation. All the traditional relaxation methods (yoga, meditation, hypnosis) place a central emphasis
on breathing.

13

Music Player
Music is integrated into QAK through usage of a simple interface and an array of music that can be
loaded into the Audio Source object and the MusicManagement script provided. The list is as large as the
amount of files that exist within the Music assets folder, where additions are as easy as adding into the
folder. The application will automatically detect files in multiple formats, most notably:

Mp3
Ogg
WMV

The addition of more file types is supported through outside resources, and can be added onto the list at
any time within the script.

Figure 7.1 Default interface of the Music Player application within QAK.
Above you will find the standard layout of the application, where there are the general buttons for
navigation including:

Play/Pause
Previous/Next
Back (To Main Menu)

Upon loading up the Music Player application, the music should be loaded and be able to be played upon
utilizing the corresponding buttons. The Play and Pause buttons are swapped whenever used and
change when visible, so there will be no further confusion on what the buttons actually do.
There are future plans to implement a picture/image of some sort to know what song is playing, along
with text to display the name and composer as well. A seek bar may be implemented at a later date as
well.

14

Project Management
Within the Quick Anxiety Kit (QAK) team are a selected few of highly skilled programmers and artists,
dedicated to bringing this application to life and creating each piece as a whole. Each member has been a
part of the University of Advancing Technology environment for many semesters, having a strong
background in the many flavors of C and JavaScript, and many focuses across the board including Game
Design, Game Art and Animation, Computer Science, and Network Security.

Team Members
The QAK team includes the following:

Game Artists
Ashley Casarrubias
Karina Barron
Kayla Godard

Game Design
Leighan Godard

Programmers
Christopher Fimbel
Devon Thomsen
Nicholas Diley
Patrick Arbasak
Zachary Beauchamp

15

Project Coordination
To complete the Quick Anxiety Kit within the Fall 2015 semester, roles have been distributed across the
many members that exist within the group. This would be concerning the creation of the various scenes
within the Unity environment, scripting processes, creating the game, and working on art assets.

Breakdown of Responsibilities
Below you will find the breakdown of responsibilities taken on by each member of QAK by section:

Art Assets Ashley, Karina, Kayla


Design Documentation Leighan, Nicholas
Technical Writer - Nicholas
Game Programming Christopher, Patrick
Breathing Application Devon
Music Application Devon, Nicholas
Main Menu Zachary
User Metrics Zachary
Scripting/Base Application All Programmers

There are more responsibilities that are being taken on by each of the members, however due to time
constraints or limited resources, each of them may be further decided to become a stretch goal for the
time being. This may include developing for other platforms, acquisition of resources, enabling certain
features such as sharing/pulling information from a data storage environment and more.

16

Plan of Work
To maintain a steady flow of work and to maintain set responsibilities, numerous sprints and sessions of
work will be utilized to make sure that everything will fall into place by Week 15 of the course structure.
The methodologies that will be used will be following the Agile methodology, and a breakdown of work
done across the weeks can be found at <> section.

Agile
For usage within our project, we will be following the 10 key principles of agile development:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Active user involvement is imperative


The team must be empowered to make decisions
Requirements evolve but the timescale is fixed
Capture requirements at a high level; lightweight and visual
Develop small, incremental releases and iterate
Focus on frequent delivery of products
Complete each feature before moving on to the next
Apply the 80/20 rule
Testing is integrated throughout the project lifecycle test early and often
A collaborative & cooperative approach between all stakeholders is essential

Keeping ourselves active in the project is an absolute requirement, as we will each be pulling our own
weight and working together. We will also be making decisions together, as this is a project we must
remain involved in.
Throughout the lifespan of our project will be begin sprints, to develop key features within our
application. We may also utilize the waterfall methodology as so:
1.
2.
3.
4.
5.
6.
7.
8.

Conception
Initiation
Analysis
Design
Construction
Testing
Implementation
Maintenance

For now, we will focus with Waterfall in mind, while also taking into account the key principles of agile
development.
Within the first two weeks of the class in session, we have undergone the conception of our project, The
Quick Anxiety Kit (QAK). With this in mind, we have also begun work within the Mobile Platform
Development (CSC330) class as well, further understanding of our knowledge of Android Application
development and more.

17

Estimated Schedule
Below you will find the current conceptualized schedule that will be surrounding the Quick Anxiety Kit
development process. These weeks are subject to change depending on course workload, and the
availability of members during these times.
Week 1: Conception
Week 2: Conception
Week 3: Initiation
Week 4: Analysis
Week 5: Design/Analysis
Week 6: Design/Analysis
Week 7: Construction
Week 8: Construction
Week 9: Construction/Testing
Week 10: Testing/Implementation
Week 11 & Further: Maintenance/Implementation
Meetings are to be held on days of class, where further time can be allocated based on needs. Current
days for potential meetings are currently post-class Monday & Wednesday and Sundays.
Total Estimated Time Meeting: 2.5 Hours
Estimated Average Time/Meeting: 50 Minutes

18

Sprint Breakdown
Sprint One 9/28-10/4 Week 4
Being the first week for the development of the application, there was not much to be had except for the
allocation of resources and deciding what was to be done with the application. We began talking with the
members of the team who initially conceptualized the project, of which we were able to get a bearing on
what needed to be done. We began dividing roles amongst several members of the team, such as working
on the Breathing Application, Music Player, Game, and more.
Week 4 in particular was more of a waiting game for more information and documentation to arise so that
we are able to continue along with their initial design and to work further from there. The idea behind
Tappy Cat was brought up and received pretty good reception by the group, so that will be the decided
game for the application.
We have yet to decide completely on how we are to share our files, and to be able to make sure that
everyone is on the same page; however someone did mention GitHub and GitLab as a potential avenue.
Aside from that, we need to obtain the resources necessary to bring this project to life.

Sprint Two 10/5-10/11 Week 5


We decided upon utilizing GitLab for the storing of our documents, which will allow for our group
members to be able to clone, pull, push, and commit changes where necessary to update our progress. The
game has been decided to be pretty simple, where the game programmers Pat and Chris were able to get it
down fairly easily. They are to wait on assets to get it done further.
An idea behind a web server for the remote storage of the application was brought up which seems to be a
good idea in case our users wish to store information or wish to back up their settings somewhere. Its a
cool idea in concept; however this is to be labeled as a stretch goal as the current settings would make this
increasingly difficult to manage.
For GUI purposes, we went over the practice of adding buttons and setting up scenes within Unity. A
strong majority of us arent native game programmers and have not touched the game engine that much,
so that serves as learning curve for many members of the team. This is just a minor setback however as it
turned out to be fairly easy to get the graphical interface up and running within the scene. The back-end
scripting is the next step, however thats a different procedure altogether.

19

Sprint Three 10/12-10/18 Week 6


We received more word about the design documentation in regards to our application, so we will be able
to focus more of our efforts towards building it according to the original concept. There was already a bit
of work done within the PRO211 class which pitched this application as a SIP project, so there was quite
a bit of information which can help us overall.
Production into the applications has been going well, where we will be attaining rough deliverables
within the next few weeks for select pieces of the application. Assuming we are able to prototype a couple
of the sections, or are able to get the back-end programming up and running, we should not run into any
issues further on as we can continue to debug and eventually tie everything together. Word is that the
breathing application is running well. Further development into the QAK database is also underway.

Sprint Four 10/19-10/25 Week 7


For week seven, the following were goals that were achieved by the group:

Game Scene Demonstration


Music Player Work
Backend Scripting
Main Menu Initial Design
Breathing Application Demo

For the above sections, a strong amount of work has been done and we will have demos available for a
handful of the applications. Music player has been lagging behind as there are complications with the
audio source functions and the ability to play certain files, however its being looked at. Navigation
between each scene is a work in progress, and backend scripting is still being learned by many of the
members.

Sprint Five 10/26-11/1 Week 8


Thus far there has been a bit of a lack in documentation and work behind it, so we are to try harder to
make sure that everything can be provided and accounted for all aspects of the application. When we are
discussing the topics in class, we understand the grand scheme of things; however the main aspect isn't
focused on understanding it, but also putting it into motion. We have already laid out the guidelines on
what we would want for the most part, where we would need to get some more documentation down on
what we would want from the applications and the games, and finally some art assets. These matters have
been discussed thoroughly within the class and also documented within our notes that we take as well
(which are available within the Google drive).
That aside, we are making some decent progress so far. We have the basis for the application and the
game is well underway. The music player for the most part is coming along swimmingly. We have the
support of Ash and Leighan, where we should be receiving art assets as time goes on as well, so we will
surely have that going into the next few weeks. We should have some concrete deliverables going into the
next few weeks, so for now, we just need to focus on getting our scenes done and try to pull them all back
together so we can work on the aesthetic portions of the application and get some sort of prototype
underway.

20

Sprint Six 11/2-11/8 Week 9


So far it seems that the pieces that we are working on are coming together rather nicely. We got to demo
the Breathing Application being created by Devon and it's looking pretty good, with more functionality on
the way. We made some progress with the Music App as one of the biggest struggles was how we were to
organize the music files and pull them from the assets, along with having them point to one another. We
are also limited on the type of files we can use, however it does not seem to be as big of an issue as we
have previously thought. The game is making more progress with the pause menu and other assets within
the application, so that is running well. An app manager script is also in the works to manage the overall
application outside of the game manager.
From what I've seen, it seems like we are making substantial progress and are on track for the most part
when it comes to the next pieces of our project. There is still plenty more for the following weeks;
however we seem to have a strong grasp on what needs to be done. Progress will only go up at this rate.

Sprint Seven 11/9-11/15 Week 10


In reference to a discussion post within Week 10, we are focusing more on the functionality versus the
aesthetic of the application for the time being. The most important part of the application is making sure
that it works before working on the visuals, as a broken application does not serve any better than a pretty
app.
We need to make sure that the application works before we make it pretty right? So with this in mind, it's
important to make sure that the application is pleasing to the eye whenever we're creating it to lure in the
users, but if the application doesn't work, it may as well not even be worth it. Best case is to go along with
a design that works in its entirety, regardless of how awful it looks, and then go back and work with the
actual aesthetic.
That aside, we are making significant progress across the board. The main assets are being created and
pushed to those that need them, to be able to redesign the buttons and get everything together in a timely
fashion. The game section of the application is running well, and will be receiving more assets as time
goes on.

Sprint Eight 11/16-11/22 Week 11


The game is nearing completion with all of the assets provided, where Ash has been working diligently
alongside us to be able to get everything set in place. We found out that the Music Player was also able to
play .mp3s efficiently, however this would make the size significantly larger as the .mp3 files are
larger than the .ogg files. The breathing application is just fine, where it has full functionality and just
needs to be tied in with the rest of the application when it comes to navigation.
The back-end functionality is still a work in progress, where scripting seems to be one of the heavier
hitting pieces that we have been working on. Working with C# is not really the problem, however its
defining all of the assets and getting everything to coordinate with assets and scenes together that is the
main issue. Its still a work in progress however, and should have more information in regards to status
within the coming weeks.

Sprint Nine 11/23-11/29 Week 12


21

This past week we have been collaborating together to make sure that each piece is coming together
nicely. We have redistributed resources in a couple sectors to make sure that are able to get each piece
done before the end of the semester so that we have plenty of time to debug and run tests on the
application.
The main activity function has been running into a couple issues in regards to explicitly converting int
values to strings; however this is a small fix that we have been working on for a while now. The Music
application is coming together well in the sense that we mostly need to decide on what tracks to utilize
and figure out where to obtain the music without imposing copyright. The Breathing App and the Game
are still in good standing, where they are set on the back burner for now as we fix the other sections of the
application.
Art assets are still coming in as well as Ash has contacted Kayla to be able to get other pieces in, in
regards to the game and the other scenes, so that is going well. Otherwise its a waiting game for some of
the assets, and working on getting the scripting put together so that we can tie it all together in the end.

Sprint Ten 11/30-12/6 Week 13


This week we were able to tie together a lot of the functionality of the applications. We began talking
about more functions and services that could be implemented going into the next semester, however we
will still have to see how much work we could do as we near the end of the semester. Assets are still being
delivered to replace the flat buttons that we currently have in place for generic functionality, which would
be the play/pause buttons, the start buttons, navigation buttons, and the like.
Every section is nearing completion; however more work is still being done on the scripting side, so we
shall see where that will lead us.

Sprint Eleven 12/7-12/13 Week 14


Week 14 is nearing the end of the semester where we are tying together everything that we have worked
on thus far. The application itself is coming together very well however we do have quite a few
unfinished pieces; however this will not detract too far from what we anticipated the project to be. The
user metrics is still a work in progress, and the main settings page has been defined, however it is not
being used. The game runs efficiently and is able to be loaded up easily, and the breathing application
works like a charm. The music player is able to load music into the audio source function, however to
automate this system is still being worked on.
So far each piece has been integrated into each other when going into the main menu scene, where we are
able to navigate between each scene and test them out inside of the Unity environment.
Going into next week, we will be debugging the application and then run tests to be able to have it run on
a mobile device. Assuming that it works within Unity, we can hope that it will run without error on a
mobile device. There will still be extensive testing and this application design will carry over into the next
semester, so there is still plenty more work to be done.

22

Das könnte Ihnen auch gefallen