How to use
PayWithText is a simple way to make payments to others using only SMS. Only 37% of people in emerging economies have smartphones(Pew Research Center). By enabling peer-to-peer commerce over SMS, we hope to help increase trade in emerging economies.
PayWithText doesn't require any internet - only a cell signal. It was designed with those who can't afford internet-enabled phones in mind by Ian Mobbs and Jacob Vanderlinden for HackTX 2016.
What it does
This application is a proof of concept. Every user is given a mock account using CapitalOne's Reimagine Banking API, "Nessie", and allocated a random amount of money between $1 and $10,000. It then allows you to pay, request, and receive money from anyone with a cell phone number. By eliminating the need to carry around physical currency, we can boost the economy and bring new technologies to places where digital currency isn't the norm, but carrying a cell phone is.
How we built it
PayWithText was built using Django, a set of Python web frameworks. We store our information using PostgresSQL and host our application on Heroku. Communication is facilitated by Twilio, and payment processing is done by the Capital One API.
Challenges we ran into
We originally attempted to build the application using Flask and hosting on AWS Elastic Beanstalk. Elastic Beanstalk was being finicky, so we moved over to Amazon EC2 instance. From there, we found that deploying and SQL statements were a hassle on the EC2 instance, so we switched to Django for it's ORM. We then switched to Heroku so we could focus less on deploying properly and more on development.
On a slightly less flexible side, we found out very late in our development cycle that Twilio can't set Header Cookies when using their RESTful API - only when a TwiML page is accessed. We got around this by creating an "Outstanding Requests" table in our database, and querying it every time a payment request was made and responded to.
Accomplishments that we're proud of
Creating a service to facilitate positive change in the parts of the world that need it most. Switching frameworks and hosts halfway into the project and still pulling it off!
What we learned
A little Flask, AWS EB, and AWS EC2. A lot of Django, Heroku, and Twilio.
What's next for PayWithText
Connect the service to actual bank accounts as opposed to just the Capital One API!