Final Progress

ENGR 103 - Spring 2016
Freshman Engineering Design Lab
A Pill in Time Application: “Pillify”
Final Report
Date Submitted:   May 10, 2016
Submitted to:       Dr. Richard Knight, knightr@coe.drexel.edu
                                    Emmanuel Oyekanlu, eao48@drexel.edu
Group Members: Luke Hanner, lah364@drexel.edu
                                    Mercedes Wesner, mew344@drexel.edu
                                    Katherine Bagdon, kjb343@drexel.edu
Abstract:
The purpose of this Freshman Design Project is to make people’s lives easier who have to take multiple prescriptions each day. An Android application has been created which will allow users to input their specific medications, along with when they must be taken. The purpose of this is that the user will receive a notification when it is time to take their medication, but this will occur through the application instead of overcrowding the built-in phone calendar. With no prior Android application coding experience, many hours of researching and learning how to use the program has been involved. Often times, figuring out how to get the program to do exactly what was intended was a challenge. Even when there were specific visions and plans for a part of the application, the code to make it work was not always easy or even possible to produce. Overall, the process to create this application included researching, coding, testing, and debugging. These four steps have been continuously repeated throughout the entire course of this project. In the end, the final deliverable is a functioning Android application which reminds users when to take their medication.


1 Introduction:
1.1   Problem Overview
This project is directed towards people who must take many different medications at various times each day. Due to the large number of prescription consumers, who live very busy lifestyles, an application to help these people remember when to take them will be very useful. Often times, people have different pills for different days along with varying times for each one, and even time increments before or after a meal. When there are so many different specifications, storing all of this information in an already built-in calendar or reminder application can be time-consuming and overcrowding.
1.2 Existing Solutions
A solution to this current problem is to create an application specifically for daily medications. This will make it easier for the user to keep track of all of them, along with freeing up their calendar and reminder applications for other necessary purposes.
1.3 Project Objectives
There are a few different goals for this project, the main one being to make these people’s lives easier by creating an application to remind them when to take their medication. The user will be able to create an account which will store all of their saved information in the application. It will have specific places for them to add the different types of medications, the days and times when they need to be taken, and the amount of pills in a bottle. The application will be coded in a way that there will be different notifications for different features. The first kind of notification will be just a simple reminder when to take a medication if the user puts in a specific day and time. Another option is if a medication has to be taken before, after, or with a meal. In this case, unless the user eats the same meal at the same time every day, there will be a notification sent at the beginning of the day to remind them to take these pills later. Then, when they are eating their meal or getting ready to, they can sign onto the application and press a preset timer to remind them when to begin to eat or take their pills. The last type of notification is relating to the user input of the number of pills in the bottle. The application will notify the user when their pills are getting low so they know when to order more.

2      Technical Activities:



The creation of the Android application has mostly taken place inside the Android Studio software. The Software combines the XML of the user interface design with the Java coding for the process of the application. When creating a new project, the first step is to create the layout of the main page of the application, dragging and dropping elements onto the simulated phone screen (Figure 1).

.
Once the main layout has been created, the next step is to give each element a unique identification, so that it may be called in the Java code. In the Java code, the working portion of the application is made by using different types of coding. A variable is set for each element using the findViewById method which links the two together. Items that are manipulated by touch, such as buttons and spinners, have Listeners attached to them. This allows for an action to be initiated by a click or spin. Intents can be attached to listeners and are used to change the current layout to a different one. For example, when the “Register Here” text is clicked (Figure 2.1), an Intent changes the layout from the Login page to the Register Page (Figure 2.2).





 The prescription data is stored in encrypted user files on the device itself. In the Add Prescription code, the variable values are saved into a file on the device for simplicity, response speed, and reduced battery usage. If the data was stored on a webserver, like the login information, then the user would be required to have an internet connection the entire time they used the app. The reminders would also use a large amount of battery life, as the app would have to poll the database every minute to fetch the reminder times.The Login information input by the user is transferred to and stored on a SQL database hosted by 000WebHost. When the user first registers, the user information data is first stored as variables in the Java code of the application, where it is encoded into a JavaScript Object Notation (JSON) [2] format so that it can sent to the server. The Java code then calls a PHP file [3] located on the server, which allows for the passing of the data into the SQL database table. When the user logs into the app, the Java code calls for a different PHP file, which returns the data as a JSON object, which is then converted back into usable data.
The final app is a convergence of separate parts on a shell that allows easy navigation to all the parts. The parts were converted into .apk files imported into the project, all conforming to the shell manifest settings.

2.1 Project Timeline


2.2 Project Budget
When creating an app, it can be done without spending any money at all. If the created app wants to be submitted to Android to be added to the Google play Store, some money will need to be spent. In order to submit an app, the creator must become a registered Android Publish which costs a $25 fee. In order to create a basic app, such as the one in this project, this will be the only money involved.
In addition to this cost, there is also the cost of labor.  Although the group is completing the work for free because it is a project, actual developers for an app would get paid a substantial salary to undertake this project.  According to [1] the average payment for an app developer is about $17.00 per hour and the group has put in upwards of fifty hours combined, so this would cost $850.00 or more.
3      Results:
When breaking the results down into quantitative and qualitative aspects, this project currently does not have many quantitative results but it does show qualitative results.  As the application is completed, more quantitative outcomes will present themselves because it will be able to run on actual Android devices.  When this happens, the run time and size of the application will be determined and from there it can be decided how useful and plausible it is.  Currently, the qualitative results have each part of the application running smoothly but separately, so the next step is to begin putting it all together.  The application does not have many numbers that accompany it because it is composed entirely of coding. Once the application is fully completed and working all together, there will be more solid data to display.
Each completed page of the application have been continuously tested throughout the process and have been displaying positive results. The entire application has not been combined yet, though, therefore has not been tested as a whole. Once all of the pages are merged into one, the final application will be tested and the results will be recorded.
The final deliverable of this project is an application that will allow users to put their prescription information in so they can receive a notification as to when to take those medications, which has been the objective since the beginning. The different features of the application will make it possible for people to easily input their information without having to clutter up their mobile calendar.
Throughout the development process each piece of the application has been tested in the Android Studio software, and the final product will also be ran with that program.  This is how the final results will be shown, in order for the application to be successful it must run fully without any issues.
4      Discussion:
The relevance of these results show that the work on the application is not yet complete but making great progress.  Although this is obvious without trying to evaluate the results, it is clear that it is extremely important to finish the application in the next two weeks.  Once it is all completed, it will be possible to measure its final performance. This must be done in order to understand how well the application runs all together so it can be evaluated and tweaked. The most important part of finalizing this application is to make sure it at least works with basic functions. All new programs have some issues which is why there are updates always being made in order to improve the bugs. In the future, the application software can be continuously enhanced making it run smoother.
In terms of knowing whether this program will make people’s lives easier, it will simply depend on how well the final product runs. If the application operates without major problems, it will without a doubt make life easier for people that have many prescriptions to take.  Even if it does not work perfectly initially, throughout the development and enhancing processes the application will continue to improve. The main goal is to create a program that is functional and then continually make progress on it after it is complete.
5      Future Work:
In the next few weeks, even though there has been tremendous progress made so far, there is a great deal of work to still be done. The final product is one application with many different pages and features, but each page has been created separately up to this point. In order to result in one fully functioning application, there must be a main page which the user can navigate to the other pages from. This will be done by formatting a menu page which connects to each already made page. That is the last main part of this project that needs to be completed. Once that is done, the application will just need to go through one last testing and debugging process. This last test should not take too long though, considering each page has been tested throughout the entire process.
6      References:
[1] S.S.Sriparasa. (2013, October). JavaScript and JSON Essentials (1st ed.) [Book]. Available:          http://www.(http://site.ebrary.com/lib/drexel/detail.action?docID=10789466)
[2] S.Suehring, J.Valade. (2013, March). PHP, MySQL, JavaScript & HTML5 All-in-One For Dummies (1st ed.) [Book]. Available: http://www.(http://site.ebrary.com/lib/drexel/detail.action?docID=10674812)
[3] S.Suehring, J.Valade. (2013, March). PHP, MySQL, JavaScript & HTML5 All-in-One For Dummies (1st ed.) [Book]. Available: http://site.ebrary.com/lib/drexel/detail.action?docID=10674812



No comments:

Post a Comment