Running Head: LAB I - GAS PRODUCT DESCRIPTION 1 Lab I – GAS Product Description Marrissa A. Webster Professor Janet Brunelle March 2, 2011 Version Two Many factors come into play when a family decides to take a vacation. The trip needs to be planned by choosing a destination and deciding activities to do at that destination. Next, a decision needs to be made about how the family will arrive at the destination, whether it is by plane, train, car, or bus. If going by car, they need directions to the destination, which can be found through a GPS system or from a mapping website. When driving to the destination, interruptions occur where someone may need to go to the restroom, everyone could be hungry, or the vehicle needs gas. When these events occur, the family may be in an area they are unfamiliar with, so they must rely on the signs located in the medians of the interstate for places to stop. These signs may not indicate all the restaurants in the Running Head: LAB I - GAS PRODUCT DESCRIPTION 2 area where the family is located. Also, it is common knowledge that the gas stations indicated on those signs are usually more expensive than the ones a little further down the road. The lack of knowledge increases frustration and inefficiency while traveling. The unfamiliar area the family is traveling through or in could cause more money to be spent since some businesses take advantage of the situation by raising the prices of their product. In 2008, the household in the United States spent $1,415 while on vacation. Almost half of the money spent during traveling is on transportation alone, whether this is from flying on a plane or driving in a car. Only 10% of the money spent is actually spent on the points of interest where a family may want to go (United States Department of Labor, 2010). Fuel prices were at the all time low in the beginning of 2009, but since have begun to gradually increase (National Business Travel Association). As fuel prices increase, the cost of driving to a vacation location increases. This also causes airplane fares to increase since the airlines have to compensate from the change in the fuel price. The Geographical Auto-Delivery System (GAS) is a phone application, which automatically notifies the end-user of points of interest, weather, and altered road conditions located in a five-mile radius of his or her current location. The application improves a traveling experience by allowing the experience to be more enjoyable. The frustration, due to lack of knowledge, while traveling is eliminated by the application since it educates the traveler of participating businesses around him or her. 2. GAS PRODUCT DESCRIPTION The Geographical Auto-Delivery System (GAS) is a system, used on a smart phone, that automatically notifies the user of altered road conditions, weather, and points of interest indicated in the end-user profile while traveling. The profile is built by the end-user through Running Head: LAB I - GAS PRODUCT DESCRIPTION 3 either the application on the smart phone or the website provided by the application. The enduser profile includes restaurants, gasoline stations, hotel chains, and points of interests such as amusement parks, camping areas, etc. The profile has a feature where the end-user can activate the entire profile or certain categories (food, gas, hotels, etc.) of the profile for notifications. This allows the end-user to control what he or she would like to be notified while traveling. The goals of this application are to increase visibility for participating businesses and save time and money for travelers. The application increases visibility for businesses by showing all of the businesses’ locations within the five-mile radius of the end-user’s current location in real-time. The application helps the end-user save time and money by assisting him or her with points of interest locations and altered road conditions that may delay the travel. 2.1 Key Product Features GAS has many key features that allow traveling to be more enjoyable. The end-user profile is an innovative aspect that allows the end-users to customize their applications. With this profile, they can indicate the different businesses they enjoy. For example, a particular end-user may not like Taco Bell but enjoys Chick-fil-A. This end-user can select Chick-fil-A as a place he or she likes, and Taco Bell as a place he or she dislikes. When this user has the food category activated while traveling, the application will show all the Chick-fil-As located in his or her fivemile radius along with any other restaurants he or she likes but none of the Taco Bells. Any business that decides to participate in the application will create a profile. The business profile includes all locations of that particular business and the items they sell. The business can edit these locations if a new store opens or if one closes. The businesses can also view any of the competition around that business. That is a great advantage to the businesses, since they will have an idea how to increase their customer flow. Running Head: LAB I - GAS PRODUCT DESCRIPTION 4 GAS has unique notifications compared to other traveling applications. The notifications include weather conditions, road conditions and points of interest in the end-user’s five-mile radius. All notifications are in real-time, meaning that the updates are pushed from the GAS database to the smart phone application as needed. To eliminate distracted driving, the notifications are text to speech where the smart phone will announce what is on the notification. For example, when the end-user is near a fast food chain he or she likes, as indicated in the enduser profile, the application will sound a bell-like sound and speak that the particular fast food chain is near. The application will then ask the user if he or she will want to reroute to the fast food chain. When the user indicates he or she would like to reroute, the application reroutes the user to the fast food chain. When there is a change in the road conditions located within the fivemail radius of the end-user, the application will alert the user with a bell-like sound and an audible notification. It will then speak to the end-user, saying that there is a change in the road condition that may cause delays and ask the end-user if he or she wants to reroute. If the end-user indicates he or she would like to reroute, the application will then reroute the end-user to a route that will not cause as much of a delay in the end-user’s travel. When a family goes on a vacation, they get directions to where they need to go. They could hit traffic, which would delay their vacation depending on how bad the traffic is. Eventually, they will need to stop for fuel, where the prices could be higher; therefore, costing more money. After a while, the family is ready to eat some food, which requires them to find the closest place to eat that everyone can agree upon. This can cause frustration and road rage, and a terrible traveling experience. With GAS, when a family goes on vacation, the application will give the family turn-byturn directions to their destination. When it gets to the point where they need to stop to fill up Running Head: LAB I - GAS PRODUCT DESCRIPTION 5 their vehicle with fuel, they can turn on the fuel notifications and GAS will show all the fuel stations, with the prices, in the family’s five-mile radius. Not only does GAS show where all the fuel stations are, but it also can reroute the family to the fuel station of their choice. When the family needs to stop for some food, the same process occurs, except for their favorite restaurants. 2.2 Major Components (Hardware/Software) Figure 1 illustrates the major functional components used for GAS. These components are essential to build the application and for the application to work properly. These components include an input handler, a database, a notification process, a server, the Internet, a third party server, a computer system, and smart phone with GPS capability. [This space intentionally left blank] Running Head: LAB I - GAS PRODUCT DESCRIPTION 6 Figure 1. Major Functional Component Diagram Major hardware components needed for the application to work properly are a web server, processor server, smart phone and a computer with Internet. The web server is used to store the website needed for the application. It also allows all needed transactions to occur. The processor server stores the database, input handler and the notification process. These are essential so the application can work properly. A smart phone is needed to run the application and the GPS capability is necessary so the application can receive the end-user’s locations. A computer system is required for both the business and end-user so they both can edit their profile and any billing information as needed. Major software components include a database, website, mobile application and graphic user interfaces (GUIs). The database is one of the most important components of our application since it stores all the information. The tables included in the database are Users, Preferences, Establishments, Businesses, and Items. The User table stores the e-mail and password used by the end-user along with a User ID number assigned to that user. Each user also has a preference ID number, which coincides with the preference ID number and the information under that ID number in the Preferences table. The Preferences table contains a preference ID number along with a business ID number. This business ID number points to the information in the Businesses table where the business ID numbers match in both the Preferences and Businesses tables. The Businesses table contains the name of the businesses along with the type of businesses it is and the subtype. Since each business gets its own login, the login name and password are stored under the Businesses table. A business may have several establishments, which is stored under the Establishments table. In order to like a business with its establishments, the Businesses table contains an establishments section, which links to the establishment ID number under the Running Head: LAB I - GAS PRODUCT DESCRIPTION 7 Establishments table. The Establishments table includes the address, phone number, the items sold at that establishment along with the times the establishment opens and closes. The items section in the Establishments table points to the Items table, which contains the name and prices of the particular items. Another necessary software component is the website. The website has sections for the end-users, the businesses, information about the application, and contacting us about any information in regards to the application. The end-user section of the website allows an end-user to login to his or her account which he or she can manager his or her profile and account, alter any personal information as needed, and invite any friends to purchase the application. The enduser section also allows other customers or new customers to register for the application, browse the features of the application, and view the frequently asked questions (FAQs). The business section of the website allows a business to login to its account to manage the profile, account and invite other businesses to participate in the application. A new business may register through the website and upon completion of registration, the business must submit its profile for review. This way, the company can ensure the business trying to register is truly a business. The businesses may also view the features to the business through the application along with the Frequently Asked Questions. Another software component is the mobile application itself. This application must be able to communicate, through the GAS server, to the many other components used in the application. The communication with the server happens through the Internet provided from the data package of the cellular phone company. If you refer back to the Major Functional Component Diagram (Figure 5), it clearly illustrated how the communication takes place. Running Head: LAB I - GAS PRODUCT DESCRIPTION 8 In order for the application to useful, graphic user interfaces (GUIs) are needed. The GUIs include a map of the end-user’s current location. When a point of interest, as indicated in the end-user profile, is located in the five-mile radius, a flag appears with a notification. This notification indicates a point of interest is near and asks if the end-user would like to reroute. Many algorithms are needed to make this application function. Table 1 lists the different algorithms, along with the definition of each, the input needed, and the output provided from each algorithm. The New Route algorithm is used when the end-user decides to reroute to a new location and when the end-user takes a wrong turn or misses a turn. The Wrong Turn Detection algorithm detects if the user took a wrong turn in his or her path. The Nearby Point of Interest Notification sends a list of point of interests to the end-user after the algorithm detects any points of interest near the end-user. The GPS Data Collection algorithm collects the end-user’s GPS coordinates and stores them in the system with an anonymous ID number. The information businesses input through website is entered in the database through the Business Data Transfer algorithm. To ensure the information going into the database is in the correct format, the Input Validation algorithm will output an error message to any one person who inputs something incorrectly. The Inclement Weather Notification algorithm notifies the user when inclement weather is ahead. The Authentication and Access Control algorithms grant a business or end-user with correct access permissions set by the system administrator. Running Head: LAB I - GAS PRODUCT DESCRIPTION 9 [This space intentionally left blank] Algorithm New Route Wrong Turn Detection Nearby Point of Interest Notification GPS Data Collection Business Data Definition Provides traveler with new route. Detects if the traveler took a wrong turn. Detects if traveler is near any point of interests in his or profile. Input Current Location Destination Current Location Directions Current Location Business Data Traveler Preferences The system stores GPS data GPS data along with Anonymous ID an associated anonymous ID. Collects the Business Output Map with directions New directions List of Nearby Point of Interests GPS data stored in the system Database Writes Running Head: LAB I - GAS PRODUCT DESCRIPTION Transfer Input Validation Inclement Weather Notification information businesses inputted through the website into the database. Checks the data going into the system to make sure it is in the correct format. Notifies the user if inclement weather is ahead. Authentication Ensures you are who you are. Access Control Assigns permissions based on who you are. 10 Information Incoming data Error message if incorrect format Weather Notification Access granted/denied Weather Data Current Location Directions Username Password Username Password Access Table 1. Algorithm Table 2.3 Target Market/Customer Base GAS targets two different customer bases and markets, one being the business and the other being the actual traveler. In order for a business to participate, they must pay a monthly fee. When a business decides it would like to participate in the application, it will access the website and go through the registration process. The registration process includes creating the business profile and providing us with needed contact information. After the registration process is completed, the business’s profile is sent in for review. This is to ensure that a business is creditable and not false. The major benefit to a business that participates with this application is the constant advertisement. Every time a person, who has downloaded the application, passes through the area where the business is located, the person is alerted of the business. The businesses can also continually be updated about other businesses of the same type around them. Running Head: LAB I - GAS PRODUCT DESCRIPTION 11 This way the business can keep up with the competition without having to travel the competition’s location. The end-user is a major customer base for the application. For a low price, the end-user may download the application on his or her smart phone and will have access to all the point of interest locations around him or her. To narrow the amount of information to the smart phone, the user may personalize the application by updating the user profile. This ensures the end-user will only be alerted and shown information about points of interest he or she likes rather than dislikes. The user profile can be updated through the application itself or through the website. 3. PROJECT PROTOTYPE DESCRIPTION This semester, the CS 411 orange group will create a working prototype of the application described in Section 2. There will be a reduction in scale and scope to give a feel of how the application will work in the real world. A mobile application will not be created, but instead a test harness, which is a piece of computer software that will act as the application would on a smart phone. Instead of GPS information being collected through the smart phone, four or five predetermined traveled paths will be created through a GPS receiver device. Each path will point to one or more end-users. The weather and road condition notifications will not be included in the application since they are not innovative aspects. Instead of rerouting the end-user to a new location through the point of interest notifications, we will just show the notification since rerouting is not an innovative aspect. The application will only have ten to fifteen businesses incorporated instead of an infinite amount. 3.1 Prototype Functional Goals and Objectives Many risks are caused with this type of application, including distractive driving, business participation, the competition completing a similar application first, server load, privacy Running Head: LAB I - GAS PRODUCT DESCRIPTION 12 and security, and business fraud. Tackling these risks is a major objective of the prototype development. The prototype will address the last three of the six risks and some assumptions will be made, as indicated in Table 2, to mitigate the first three. For the server load risk, best practices will be exercised to ensure the server will not crash. The authentication and access control algorithms will mitigate the privacy and security risk. A disclaimer will be introduced to the endusers, and a terms of agreement will be given to the businesses to help prevent the application’s creditability to be at stake due to a business providing incorrect information. Risk Distractive Driving Business Participation Competition Completes First Assumption End-user will not use app while driving. (i.e. only the passengers will use this app). All businesses will want to participate in our application. No other company is creating an application similar to GAS. Table 2. Risk Assumptions The development of the database is another major objective of the prototype since it is an essential component of the prototype and real world product. It is very important for the database to be working properly because it is what holds all the information needed for the application. Without the database, there would not be notifications, end-user profiles, or business profiles since it contains all the information needed for those components. To ensure the information going into the database is the correct type or in the correct format, the input validation algorithm is an important objective. The input validation algorithm outputs an error message if a piece of information is the incorrect type or in the incorrect format. Refer to Table 1 for more information about this algorithm. The website is a very important aspect for the application since that is the only place the businesses can update their profile or find any other information. The website will be essentially Running Head: LAB I - GAS PRODUCT DESCRIPTION 13 the same for the prototype as the real world product, except it will not have the referral feature, since that is not an innovative aspect. The website can be used to add businesses to the database, update the businesses’ profiles, and update the end-users’ profiles. Along with the database, the website is one of the most important goals in the development of the application. Last, but not least, the test harness will be a web-based software through the web browser that will act as the mobile application. It will contain the GUIs and notifications similar to the real world product. The only difference is that the notifications will not ask the end-user to reroute but just notify the end-user of the point of interest since the reroute feature is not an innovative aspect. A test harness is used, instead of a mobile application, because of the limited time provided to develop the prototype. 3.2 Prototype Architecture (Hardware/Software) Major components used in the prototype are the website, database, notification subsystem, CS server, test harness through a web browser, and computer system, as illustrated in Figure 2. These components function similar to the real world product. A major difference is that instead of a smart phone, the prototype will use a test harness through a web browser, an input handle is not used and a third party server is not needed. Just like the real world product, the database, and notifications run through the CS server, which connects to the computer system through the Internet. Running Head: LAB I - GAS PRODUCT DESCRIPTION 14 Figure 2. Prototype Major Functional Component Diagram The algorithms used in the prototype are the Business Data Transfer, Point of Interest Detection, and Input Validation algorithms. The New Route, Wrong Turn Detection, GPS Data Collection, and Inclement Weather Notification algorithms are not included in prototype because they are not innovative aspect of our application. For more information about the algorithms mentioned, refer to Table 1. 3.3 Prototype Features and Capabilities Major features and capabilities of the prototype include the notifications, end-user profile, and business profile. The notifications include any point of interest, indicated in the enduser’s profile, located in his or her five-mile radius. The end-user profile allows the the test harness to be customized for a certain end-user. The business profile contains all the information about a particular business including its address, phone number, and hours of operation. The difference of the features between the prototype and real world are shown in Table 3. Running Head: LAB I - GAS PRODUCT DESCRIPTION Feature Real Time, Autonomous Notification s Weather Gas Prices Business Profile End-User Profile Website Test Harness Real World Project Description The application will automatically push notifications to the end-user about point of interests or altercations in road conditions located in the five mile radius from the user’s current location. The application will show when there is inclement weather ahead. The application will show the gas price, provided by the business, when a gas station of the user’s preference is in five-mile radius. The application will allow a business to create a profile, via the website, to include information about the business (locations, type, etc.) and update the information when needed. The business may also check out other businesses, related to their type, to see what the competition is doing. The application will contain a user profile, created by the user either from the website or the application itself, to reflect the user’s favorite locations to visit. The application will also have a website for the user and the business to be able to log into to create/update their respective profile. There will also be a way to contact our company if needed and a feature to refer a friend or another business to participate in our application. Not included 15 Prototype Description Does not contain as many businesses. Not included Fully functional Does not contain as many businesses. Fully functional The application will also have a website for the user and the business to be able to log into to create/update their respective profile. There will also be a way to contact our company if needed. Will act as the phone application and will include all the features used in the prototype. Table 3. Real World Project vs. Prototype Features Many risks develop when creating this application. Due to time constraints, not all risks can be addressed including distractive driving, business participation, and the competition completing a similar application first. Refer to Table 2 with the assumptions used during the development of the prototype. For the mitigation of the other risks, refer to section 3.1. Running Head: LAB I - GAS PRODUCT DESCRIPTION 3.4 16 Development Challenges Many challenges will come about while developing the working prototype. Creating the test harness will be a major challenge since it contains many aspects needed for the prototype. Since many of the group members are not familiar with developing GUIs, the creation of the GUIs will be a challenge during the development of the prototype. No one person in our group has used the GPS receiver provided by the Computer Science Department; therefore, collecting correct GPS information from the receiver and placing it into our database may be a developmental challenge. The error of the GPS, however, is not significant enough to the Point of Interest display. The reason for that is because the error is usually only 50 to 100 meters away from the actual position (Corvallis Microtechnology, Inc.). Creating different tests, to ensure the test harness is working properly, will be a development challenge since we will have to make sure every possible thing that could go wrong is tested. LAB I - GAS PRODUCT DESCRIPTION GLOSSARY 17 Algorithm: set of rules to solve a problem. App (Application): computer software used to help a user perform single or multiple tasks. Auto-Delivery: information that is automatically delivered to a system. Autonomous: an automatic process. Business: commercial enterprise who chooses to be part of the application; only includes type of restaurants, gasoline stations, and hotel chains. Database: collection of data for either a single or multiple uses. Database Schema: definition of the database structure. End-User: the main user intended for a system. Foreign Key: a key used in one database table to represent the primary key of a related database table. GPS (Global Positioning System): a navigational system that uses a satellite to locate the latitude and longitude coordinates of a device. GUI (Graphic User Interface): user interface used with graphics where mouse clicks, instead of keyboard strokes, are used for input. MFCD (Major Functional Component Diagram): a diagram that displays the major components used in a project. Point of Interest: a location indicated in the end-user profile. Primary Key: a unique key used in a database to identify each row in the table. Prototype: instance of something that shows an example of what is to be. Real-Time: the time it takes for information to be sent to an application or piece of software. Server: a computer that allows different users access shared files. Sitemap: a flow chart that shows what is contained in a website. Test Harness: piece of software that shows an example of a larger piece of software. LAB I - GAS PRODUCT DESCRIPTION Text to Speech: computer software that converts text to an artificial human voice. Traveler: a person who travels to different locations. 18 LAB I - GAS PRODUCT DESCRIPTION REFERENCES 19