Design (Chapter 4)
- Category: Level 3, Computing Project (Dissertation)
- Published: Thursday, 06 September 2018 08:45
- Hits: 1743
Although the design is a very important part of the project, only small amount of time was available for this. Literature Review was done at the beginning of December. Later the weeks of winter holidays followed, and then three module exams were needed to finish in the early weeks of January. Due to complexity and huge programming need, the developing had to be started in mid-January.
The Waterfall method made possible to plan the functions in the early stages, while developing of functions one-by-one. So the planning stages were moved to developing chapters, and this chapter became smaller compared to others.
Android Design Principles, data storage, functional structure and graphical basics were only incorporated into this chapter.
The primary guidelines were given by Android Design Principles because the implementation was made on this platform.
The Android design principles are made up from three main parts. These principles are analysed in the following (Android Developers, Design Principles 2016).
- Delight me in surprising ways (the use of multimedia options for a more enjoyable use. For example, good quality animations, sound effects)
- Real objects are more fun than buttons and menus (using graphical pieces rather than simple buttons)
- Let me make it mine (personalisation)
- Get to know me (show previous choices for easy repeating)
Simplify My Life
- Keep it brief (simple words)
- Pictures are faster than words (minimalised text)
- Decide for me but let me have the final say (suggestion)
- Only show what I need when I need it (basic structure)
- I should always know where I am (navigation)
- Never lose my stuff (save data and access for other apps)
- If it looks the same, it should act the same
- Only interrupt me if it's important
Make Me Amazing
- Give me tricks that work everywhere (similar manipulation solutions made for similar tasks)
- It's not my fault (accurate description of errors and problem troubleshooting guide)
- Sprinkle encouragement (to break down complex tasks into simple ones)
- Do the heavy lifting for me (to make difficult tasks simple)
- Make important things fast (ease of access to important functions)
Guidelines specified the planning and developing. By following the principles of ‘Enchant Me’, the application had to be made more spectacular and enjoyable. It means that the application had to be equipped with animations and image buttons. The image changes had to be replaced with custom animations. A simple, linear structure was needed according to guidelines of ‘Simply My Life’, and also the secure data saving needed to be solved. Design of the successful application is guaranteed by simple structure and easy usage.
The applications can use one of the following ways to use the most appropriate approach. (Android Developers, Storage Options 2016).
- Shared Preferences (The data is stored in pairs of Key-Values)
- Internal Storage (In this case the information is stored on the phone's memory. so the command getFilesDir() has to be used)
- External Storage (This is the removable storage, so it's not always accessible).
- SQLite Database (with this, the internal file system is used to create a virtual database, and the relevant information is stored here)
- Network Connection (gives an opportunity to connect to external databases and store data there)
One of the most important function of the application is data storage and their analysis. To keep the data secure and available at all times, an external server was used for storage. The server of the University, because of storage space and accessibility limitations, was only used when the opportunity was there. For this reason a self-managed server, that was registered to a personally used Domain Name ( http://frankotrade.info), was used. The server is located in Hungary in a warehouse with limited international connection, but it was still faster than the server run by the University.
Database access details:
Host: https://184.108.40.206/myadmin/index.php (localhost)
Database name: "********"
The server access data was not possible to share, as it has other personal information stored, but the PHP codes used for running the application can be found in attached DVD disc.
A MSMAS subfolder was created where the application handling PHP codes are stored. In the database the groups of data were separated by different tables. A separate table was created for user data, mental measurement results and physical measurements. For the users to connect a unique email and secret password was used. The results created by the users were added to a field using self-generated and UNIQUE parameters, so the data can be transferred and united.
The SQL commands used to create the tables:
CREATE TABLE IF NOT EXISTS `users` (
`uid` int(11) NOT NULL AUTO_INCREMENT,
`unique_id` varchar(23) NOT NULL,
`firstname` varchar(50) NOT NULL,
`initials` varchar(10) NOT NULL,
`username` varchar(20) NOT NULL,
`email` varchar(100) NOT NULL,
`encrypted_password` varchar(80) NOT NULL,
`salt` varchar(10) NOT NULL,
`gender` int(2) NOT NULL,
`year` int(4) NOT NULL,
`month` int(2) NOT NULL,
`weekly` int(4) NOT NULL,
`hours` int(4) NOT NULL,
`sport` varchar(50) NOT NULL,
`level` int(2) NOT NULL,
`created_at` datetime DEFAULT NULL,
PRIMARY KEY (`uid`),
UNIQUE KEY `unique_id` (`unique_id`),
UNIQUE KEY `email` (`email`)
CREATE TABLE IF NOT EXISTS `mentalSurveys` (
`mentalID` int(11) NOT NULL AUTO_INCREMENT,
`uid` varchar(30) NOT NULL,
`goalSetting` int(2) NOT NULL,
`automaticity` int(2) NOT NULL,
`emotionalControl` int(2) NOT NULL,
`imagery` int(2) NOT NULL,
`activation` int(2) NOT NULL,
`selfTalk` int(2) NOT NULL,
`relaxation` int(2) NOT NULL,
`attentionalControl` int(2) NOT NULL,
`date` varchar(10) NOT NULL,
`time` varchar(10) NOT NULL,
PRIMARY KEY (`mentalID`)
CREATE TABLE IF NOT EXISTS `physicalTests` (
`physicalID` int(11) NOT NULL AUTO_INCREMENT,
`uid` varchar(30) NOT NULL,
`memoryGame` int(2) NOT NULL,
`firstTest` int(2) NOT NULL,
`secondTest` int(2) NOT NULL,
`thirdTest` int(2) NOT NULL,
`fourthTest` int(2) NOT NULL,
`date` varchar(10) NOT NULL,
`time` varchar(10) NOT NULL,
PRIMARY KEY (`physicalID`)
Because of the decrease in communication to the external server, the last parts of the data, had to be stored on a parallel system with SQLiteDatabase services. A similar table system was used here too, but the size of the tables were reduced, by deleting irrelevant or outdated data and only the most vital data was stored.
To gain access to both storage method and the data about the tasks can be accessed through the services of SharedPreferences. For example to store the application's status, so the users don't have to enter every time the application is used. The mobile device used stores the last user's information, and only after the user signs out, the log-in activity appears.
Due to comparative results, it was useful to perform the tests every time in the same order. The consequences of previous exercises can influence the results of next tests, which can lead to bad conclusions. For example, if the user’s hands are getting tired during the exercise, fine movements cannot be done.
While compiling the task queue, attention was paid that each task does not affect the other’s results. This is why the exercises were put in this difficulty order. Easy tasks were inserted after hard ones to give time to rest for the user.
The flowchart of the program can be viewed below: (Click on the picture to download!)
Displaying is important part of the software, so specialists are trained, who only perform graphical jobs. Simple pictures can be made by anyone, but good quality work needs professional studies and experience.
Because only one developer participated in this project, personal experience in each partial task cannot be the same. Lack of experience can be filled with the usage of online available and free-to-use graphical works. This was the most useful solution for the project in this case. The inserted graphical elements were chosen from the picture results of Google search engine.
Sport themed icon set were the graphical base, and used for Action Bar icons and Memory Game images. The set contained pictograms of 16 kind of sports, which means that varying icons per page could be used.
Source: http://img.freepik.com/free-vector/sports-vector-icons-set_23-2147491071.jpg?size=338c&ext=jpg (Accessed: 19/01/2016)
The picture was downloaded from the link below, and then recoloured to match the colour scheme of other pictures:
This picture was used for the start screen too with a custom edited text part, and also a two-direction arrow. The welcome page’s last picture element was downloaded from the link below:
Source: https://azmuslimvoice.files.wordpress.com/2016/01/human_brain_picture_165499.jpg?w=425&h=400&crop=1 (Accessed: 15/01/2016)
Start screen below is designed from the compiled pictures.
Besides the pictures above, the next images were used for the design of application:
Source: http://4.bp.blogspot.com/-WiQ_k-XJTKU/UQEeinG9bII/AAAAAAAAB2g/R3-Xgb9fXYo/s1600/convert.png (Accessed: 19/01/2016)
Source: http://www.artedguru.com/home/right-brain-left-brain (Accessed: 26/02/2016)
Source: Eurofit Fitness Testing.doc (2012)
Source: http://www.gymbuzz.com/fitness-centre/wp-content/uploads/2015/03/anti-aging3.gif (Accessed: 20/02/2016)
Small amount of pictures were used for the project compared to its size because the emphasis was on the simplicity. The finished pages can be viewed in Appendices, Section F.
It must be specified how the users can use the application, so the design not only covers the internal working and external looks. PACT analysis and the non-functional needs helped to specify this.
Wider usage is defined by the proper device and the chosen programming environment. To achieve this, devices with Android operating system were used because their market leader status based on surveys. Another viewpoint that the exercises built in the program can be done by any healthy person without regardless of age and sex. The guidelines of the platform must be followed for the easy usage. Simple and easy understandable graphical solutions must be achieved.
A cheap and mass produced external device is needed for accurate measurements. Also, possibility for executing the tasks without external device is necessary.
Safety data storage and login system must be worked out, which guarantees that only the competent persons can access the data.
For the later development, the discovered flaws must be corrected, and also the given availability to user feedback is needed. Version control helps to trace the changes.
Abiding the viewpoints above will lead to development of a good and widely used application.