Flask local server running
View nearest ATMs in SMS
Add a new customer
Add an organization
People end up spending more time managing and making multiple payments on different platforms than actually use it for productive things. In order to save this time and automate tasks, my application allows user to create account with CapitalOne, linking it with multiple payment partners like gas companies, electricity providers, internet service providers, shopping malls etc and provide real time sms feedback.
What it does
This application allows user to setup account with CapitalOne, make use of multiple services - make pending bill payments, setup recurring bill payments, quick lookup of nearest ATMs, add organization (only for admins) for user to avail its (organization's) service. It also provides real time feedback about status of the service availed via SMS.
How I built it
I built the whole application around CapitalOne's API making it a primary API portal for managing customers and their accounts and Twilio's RESTApi and Markup Language(ML) as sms service provider. I created local database using sqlite3 to store customer's login credentials and other useful information. Local database also stores bills payable (both recurring and non-recurring) and organization details to automate payment process without requiring customer to login into different portals. In order to provide nearest ATMs to customer, I used geopy API for geocoding, where customer sends city and state via sms and geopy converts it into latitute and longitude. We use these coordinates to fetch ATMs from CapitalOne's API. In order to read sms from customer, I set up a local server using Flask and tunneled it with public internet using ngrok. I used JSON and urllib2 packages for sending GET/POST requests and receive responses.
Challenges I ran into
I had basic understanding of Python 2.7. However, I faced challenges to deal with APIs as this was completely new to me. I spent some time learning and running test codes, making extensive use of CapitalOne's API. It was challenging to install new packages in the system as few dependent libraries were missing; so had to remove errors from scratch. Eventually it worked. I also had hard time understanding ngrok and Flask, as it lacked some intricate details in documentation, which I figured out later and got the code running.
Accomplishments that I'm proud of
I am proud to have learnt dealing with API, tunneling and software development. I appreciate the fact that I could talk to sponsors and know more about the companies that I wasn't aware of! I made some friends as well.
What I learned
I learned developing applications using multiple APIs, aggregate data, develop modules to clean and store the raw data in final tables and then later transfer it on cloud.
What's next for iStuffMgmtTool
Upcoming modules coming up in iStuffMgmtTool are: a. Integrating VoIP to provide voice services to customers and improve user experience. b. Integrate the code with external payment parties' API in order to provide many features that we are missing in this fundamental module. c. Transfer the sqlite3 database on cloud - mongodb/ AWS. d. Create GUI for improving look and feel of tool. and many more to come...