It is a new age where technology dominates human life. With the growth of smartphones and Web APIs, the number of mobile application development have increased in the past years. A large number of mobile applications make use of web APIs to integrate services into apps. In this paper, a mobile app is discussed for a planning, which will allow the users to plan and schedule their day trips by developing a web service API and accessing it through a mobile application. The proposed web API will integrate various third party APIs, such as Zomato, Ola for events, such as restaurant table, cab, and movie booking. Hence the proposed system will serve as an automated flexible planning system which will help the users to schedule their trips without any manual intervention or hassle.
With the growth of mobile application development, there are ample number of apps available serving different types of customer needs and demand. The idea of the proposed system is to develop a mobile application which will plan and help users schedule their day trips in a flexible way by scheduling different events, such as going for a movie, restaurant booking, or booking a cab, etc. The idea behind developing the system is because currently there is no such application available in the market which allows users for planning their day trips. Also currently, the user has to go through a process of manual planning by installing different applications for serving different events such as Ola for cab booking, Zomato for restaurant and table booking, and BookMyShow to book movie tickets. Also switching between these applications in order to manually plan and manage everything is quite cumbersome. One such application which has all these different applications inside a single app is “Tapzo” (Tapzo, n.d.). But the issue with this application is that it is just an app aggregator, wherein all the apps can be found inside a single application, but there is no connectivity or interaction among them and they function in an isolated manner. Hence, the proposed system “Ease your day” is a solution handling the above issues by integrating different third party APIs and developing a custom web service API that can be further accessed through a mobile application, which will be developed to query and get the response back from the custom build API, which can be accessed through any platform. Hence the system will serve as a solution by eliminating the need of manual planning and the users no longer need to worry about booking different events separately. The proposed system will allow the users to plan and also provide them with the detailed day schedule for their choice of events, such as movie, restaurant, etc. The system will provide the best suitable choices for movie theatres, show timings, different restaurants by considering different constraints, such as user's current location, the destination to be visited, time duration allotted for the trip, distance, time to reach, etc. Hence the user's time is saved as all these constraints while scheduling the trip will be taken care by the system and the objective served will be that user will be provided with complete scheduled day plan. The system also has a recommendation module which uses collaborative filtering to recommend restaurants to a user based on his/her history and preferences of other community of users similar to him/her (Kostov et al., 2003).
With the rise of technology, modern-day software development makes use of various Application Programming Interfaces (APIs). Software developers use these APIs for using code libraries, frameworks, or sources of data, to get free from bedrock programming tasks or faster buildup (Dagenais & Robillard, 2011; Espinha et al., 2015). Modern web service APIs provide an organized and flexible method to incorporate new services into existing application (Curbera et al., 2002; Vinoski, 2008; Srivastava, 2014; Espinha et al., 2015). So the researchers develop systems that integrate the third party APIs such as Zomato (Milosev & Ackovska, 2011) and OLA (OLA API, n.d.). Through their REST interface, web APIs can easily be integrated by a single HTTP request. Integration of these APIs will help to develop an application for automated day-trip planning (Milosev & Ackovska, 2011).
Recommendation system can be developed using: collaborative filtering or content-based filtering (Miyahara & Pazzani, 2002). Collaborative filtering recommends by finding similarity between users. Collaborative filtering does not need any context, it can used for recommending any item. So it is an appropriate technique to recommend contents. Collaborative filtering are of two types: Memory-Based and Modelbased (Kostov et al., 2003; Resnick et al., 1994,). The Model-based methods (Kostov et al., 2003) are based on probabilistic methods, such as cluster models and Bayesian networks. The Memory-Based (Breese et al., 1998; Kostov et al., 2003) method predict the preference of user based on limited information from the user itself and set of weights like distance, similarity, etc., are calculated from the user data. In proposed system, recommends user restaurants based on cuisine preference. The system do not have any attribute that characterizes cuisine preference and so the propose work uses memory-based collaborative filtering to recommend restaurants based on cuisine similarity between users. Various similarity techniques were proposed (Rasmussen et al., 1992). In the proposed system, cuisines are liked or unlike, so the approach is simplified by using Jaccard's similarity coefficient to calculate the similarity between the users (Sahon & McGill, 1983).
A proposed system is a web service API that integrates different third-party APIs and uses memory based collaborative filtering technique for recommendation. The proposed method is described in the following section.
Figure 1 shows the system architecture. The user interacts with the system through a mobile application in order to plan their day trips. The mobile app proceeds further by making requests to the Ease your day web application which is present on the cloud and serves as a Web API that handles all the requests coming from mobile app and prepares the appropriate responses to each request.
Figure 1. System Architecture
The application integrates third party APIs, such as Zomato (Zomato, n.d.) for restaurant booking, OLA (OLA API, n.d.) for cab booking, etc. The database used is NoSQL database, hosted on cloud (MongoDB Cloud Database, n.d). The database is constructed to hold the details for the users of the application, their credentials, etc. Also for the development of the recommendation module, database plays a major role in the proposed system. The server of the application is built using NodeJS (NodeJS, n.d.) and all the pages are developed using EJS (EJS Templates, n.d; Express with EJS, n.d.) and HTML. Google Maps API (Google Maps, n.d.) is used for fetching the users’ current location and to calculate distance and duration for different places.
The recommendation system being implemented is to recommend movies and restaurants to a particular user based on history and preferences of other community of users similar to him/her. Figure 2 shows flowchart for the algorithm.
Figure 2. Flowchart for Recommendation Algorithm
User-based collaborative filtering technique is used which says that people who agreed in the past are likely to agree again (Habib et al., 2016). Hence in order to recommend movies and restaurants, the system will recommend restaurants visited by other users who are similar to him. The algorithm is as follows:
where, ‘k’ is the total number of users in the system.
where, ‘j’ is the total number of cuisines.
Taking the user preferences in terms of choice of various cuisines, the different cuisines are as follows:
Table 1 shows how cuisine choices will be stored.
Table 1. Cuisine Choice Notations
Creating user-item matrix in Table 2.
Table 2. User's Cuisine Choice Matrix
Jacard's coefficient (Kostov et al., 2003) assigns a value between 0 and 1 for the users U and U .
On looking at three set of users (U1 , U2 , U3) shown in Table 1, the Jaccard's coefficient(S) between U1 , U2 is calculated as ratio of interection of Cui1 to Cuij items to their union as whole.
U1 ={Cui1 , Cui3 , Cui4 }
U2 ={Cui1 , Cui4 , Cui4 , Cui5 }
Therefore,
For proposed system, the threshold is set as 0.6 (3/5).
So as the value of S(U1 , U2) is 0.75, these two users are clustered as similar user, where C1 (U1 , U2) is denoted as cluster of similar users.
Giving recommendation based on previous history of this particular user, only if he/she has not visited those restaurants earlier in the past history, but is likely to visit in the near future.
So if the user U1 visits a new restaurant, the system first checks if the users similar to U1 , i.e. U1 has previously visited the restaurant or not. If user U2 has not visited the restaurant, then the system recommends the restaurant to the user. Eg: if the history of visited restaurants of U1 and U2 (both are similar) is in Table 3.
Table 3. Visited Restaurants of Users
Therefore, from Table 3, restaurants recommended to U1 are (difference between the two sets is computed) as in Table 4.
Table 4. Restaurant Recommendation
Table 4 is the final result computed, which are the recommended restaurants to the particular user which are likely that he/she might visit because users having a similar taste as them have already visited.
Figure 3 depicts recommendation system with two users with similar preferences.
Figure 3. Recommendation System
The goal of the system is to allow users to plan their day trips using a single mobile application. The results produced by the application were much faster and required less time and phone memory usage in comparison to other applications used separately for planning different events. Suppose, if user A wants to plan his day trip, he needs to sign up and create an account. Once the user A’s login is successful, he/she can start planning his day trips. The home/page of the system is shown in Figure 4.
Figure 4. System Home Page
If the user A wants to plan his trip, he just needs to provide the destination, time span, and his/her choice of events.
For example, if the user stays at Mumbai Central and wants to visit Ghatkopar, then he/she enters his/her destination and the start and end time like 12:00 pm - 6:00 pm as shown in Figure 5.
Figure 5. Plan Trip Page
After entering the details, the user needs to select the event which he/she wants to go first. For e.g., movie or restaurant. If the user selects movie first, then he will be directed to the movie page as shown in Figure 6. This page shows the show timings of different movies at different theatres located in Ghatkopar. Once the user selects the movie of his/her choice, he/she will be asked for confirmation. Once the user confirms for the movie, he/she will be prompted for selecting any other option if the user wants to visit. If the user selects yes, then it will be redirected to Plan Trip page shown in Figure 5, where user can select the other event for e.g. restaurant event. If the user selects no, then he/she is redirected to Schedule Page.
Figure 6. Movie Booking Page
If the user selects the restaurant event, then he will be directed to restaurant page, where different restaurants located in the preferred destination will be listed as shown in Figure 7. The user can then select his choice of restaurant and give his confirmation.
Figure 7. Restaurant Table Booking Page
Once the user selects all the events, he will be redirected to the schedule page, where his/her complete day plan would be provided. For all the events, cab will be booked so that user can reach at the events’ location and go back home at the end. Figures 8, 9, and 10 show the day trip which is planned by the application for the user based on his destination, time span, and events choices.
Figure 8. Schedule Page 1
Figure 9. Schedule Page 2
Figure 10. Schedule Page 3
Ease Your Day is a mobile application which is designed to meet the user's requirements for planning their week-ends easily, without any trouble. In the proposed application, single platform is provided for multiple functionalities, such as cab booking, movie booking, restaurant booking, and scheduling between them. This application is designed to overcome the manual planning process for week-ends and make automated and flexible planning system. With addition to this, recommendation system is provided for users, which will help the users in planning their trips by recommending them movies and restaurants of their choices and preferences. For implementing many of these functionalities, third party APIs were integrated. Thus this automated flexible planning system helps the users to schedule their trips without any manual intervention or hassle.