We were inspired by GasBuddy, a company that gathers a majority of its gas price information from crowd-sourced data, motivating its uses with daily raffles and contests. We wanted to create a website that allows travelers to manage their budget without having to worry about currency exchange, and also to find/post locations of currency exchange stations near the user that offer the best conversion rates.

What it does

XChange stores the user's custom budget and remaining balance online, and allows them to easily subtract their foreign expenses from their budget by converting all transactions into the user's native currency using the Xe API. This process will work for almost all of the different currencies in the world. Our website also stores the information regarding all recent transactions that have been made on the account(Amount of Foreign Currency spent, Native Currency, Remaining Balance, and Date). In addition, our website incorporates Google Maps API to allow users to post rates and locate currency exchange stations from real-time crowd-sourced data. In order to encourage accurate postings, we plan to offer rewards to users who have a good reputation on the site.

How we built it

The frontend was designed using the Bulma CSS framework. We utilized the Fetch API to make all of our HTTP requests, taking advantage of ES6's asynchronous capabilities to simplify the request handling in order to avoid the dreaded callback hell. The backend was built using node.js, with express.js as our web app framework, pug as our templating engine, and passport as our authentication middleware. All data was stored in a MongoDB database hosted on an Azure instance in mLabs, and we used mongoose to interact with our database. We used the Google Maps API to display the map and markers, as well as the Geolocation API to figure out where our users were. Finally, the Xe API was used to convert the currency.

Challenges we ran into

We ran into several challenges such as learning how to use the Google Maps API to create our own markers on the map, and implementing the Xe API to directly convert the user's input into the currency they desired. We also had trouble designing our website to make it responsive and user-friendly. Despite these challenges, we were able to produce a project that we are all proud of in the end.

Accomplishments that we're proud of

We are proud of the way we worked together as a team to divide the workload and tackle different challenges, each using our skills to the best of our ability. We are also proud of the multi-functionality aspect of our website, and how we successfully implemented the Google Maps and Xe API to perform our desired tasks.

What we learned

Through this experience, we learned how to incorporate the Google Maps and Xe APIs into our website, and strengthened our skills in web development. We also learned how to work efficiently under pressure, and overcome obstacles to achieve our final goal.

What's next for XChange

Our vision is for XChange to be beneficial to all people travelling around the world, so we hope that we can gather more crowd-sourced data to ensure that travellers in all locations have access to the best currency exchange rates. We also wish to add more functionality to the website, such as keeping track of a group's budget, adding a rating and reputation system for the crowd-sourced data, and allowing users to easily transfer money to others on the site.

Share this project: