Having four members who all flew to Switzerland from their respective countries, we realised that every travel plan requires the same steps of actions - booking travel, accommodation and even what to see and eat at the destination. Moreover, a student having no active income is unlikely to spend as much as the Director at an investment bank earning a million euro. Based on this, we realised an app that could personalise a travel plan by understanding your spending habits and capabilities would save time, money and a lot of effort. Immediately associating this process with having a Sherpa as a guide through the Himalayas, the app was named PocketSherpa.
What it does
PocketSherpa analyses people's spending habits during their previous travel journeys and use that to predict likely trends in the future. A student like me who usually travels on a shoestring budget should not be shown a plan involving 5 star business hotels and travelling in business class. Once a journey has started, the app automatically shows you the most important information you need - giving you your boarding pass and plane ticket when you're at the airport before departure to showing you the best route for you to reach your hotel once you land, PocketSherpa helps you every step of the way.
How I built it
Our intuitive web based mobile ready interface allows our users to have the best experience irrespective of the device they carry. You simply need to log in with your Deutsche Bank account and then pick the starting location, destination and the dates of travel for PocketSherpa to work its magic.
The DB API is used to analyse and classify a user's past transactions over the previous 90 days into urban transit, air travel and accommodation. Each of these groups are further processed to compute your spending habits in comparison to the market average.
The gathered data is then used to select the most appropriate options for travel and living for the user and the itinerary is created and presented to the user.
Each API - Skyscanner, Rome2Rio, Deutsche Bank, etc have been modelled to be self-contained microservices. The model is broadly centralised with the frontend application being the one that accesses and uses these microservices, except for some very limited cross-service message passing.
Challenges I ran into
Since none of us are designers, choosing a pleasant user interface was one major challenge. Also our team as a whole, did not have a strong background in web-based programming, especially considering our fragmented backend took considerable effort. Each of us had our own challenges to face with the API we worked delegated amongst ourselves
Understanding and implementing an OAuth2 client and the process flow the authentication involves took several hours of work.
The rate limit on SkyScanner's API made testing a slow and tedious effort.
Scraping Rome2Rio after losing patience from waiting for access to their development platform was another major learning process.