Twilio studio flow pt.1
Twilio studio flow pt. 2
ATM (Hardware Component)
Borrower detail view
Registering a borrower
Detecting borrower registration duplication
PLEASE WATCH THE DEMO VIDEO IN THE HEADING OF THIS DEVPOST
In many low income areas around the world, people are forced to rely on unaccredited institutions for loans because their jobs do not provide them with a formal/stable source of income. This issue is primarily prominent in India where workers like rickshaw drivers and food-stop owners have to rely on unregulated loans to sustain and grow their businesses. These unregulated loans may come with unfavourable conditions that can harm the borrowers.
Auxilium aims to create value for the grey financial system in 3 key ways:
- Help borrowers build credit history to make them eligible for loans from accredited institutions
- Serve as a mediator between lenders and borrowers to avoid bounty hunting
- Provide charitable microloans that directly improve people’s quality of life
In order to actualize on these goals we envision a network of low cost ATMs designed specifically for loan management. To keep deployment costs low, we intend to use cheap telecommunications infrastructure, like text messaging and phone calls as a user interface. Lenders use our web application to extend credit to individuals through a regulated interest schedule. In the case of loan default, lenders can negotiate with Auxilium for reasonable insurance instead of head hunting individual borrowers. Transactions for borrowers and lenders will be recorded on the Stellar blockchain as an immutable credit history that could eventually be used to prove creditworthiness for home mortgages or other large payments. Since many of the users we intend to reach may not have a government issued ID, we intend to use facial recognition software to validate identities.
The scope of our hackathon project was:
- A hardware ATM that enables that is interfaced with our server.
- A blockchain schema on the Stellar Network that provides a publicly visible and immutable record that can be used to evaluate creditworthiness. (Stellar)
- A facial recognition based registration process that doesn’t allow for fraudulent duplicate account creation. (AWS Rekognition)
- A server that retains user information and coordinates Twilio, ATMs and the Stellar blockchain
Auxilium Tech Stack
Hardware (Raspberry Pi 3, IR Break-Beam Sensor, Servo Motor, 3D Printer, Laser Cutter) : We created a miniature ATM to satisfy a pivotal need in this project. First we used the 3D printer and laser cutter to create the housing for the ATM. We added a slot to allow for coin deposit and one for coin withdrawal. The coin deposit mechanism was created by using the break-beam sensor to implement counting functionality. The coin withdrawal mechanism was created using the servo motor and custom cut parts from the laser cutter. This information is collected via python scripts which are running on a node server which is running on the Raspberry Pi 3.
Blockchain (Stellar) : Stellar serves as an immutable transaction ledger that can be used by financial institutions to evaluate creditworthiness of borrowers. Every time a transaction occurs on our network, it is pushed to the Stellar ledger. Our web-view populates the transactions for users from the ledger and is meant to serve as a portal for lenders to extend credit to borrowers on our platform.
Web View (React.js) : The web-view allows the user and financial institutions to view the registered transaction history of users. They can toggle the settings to view a feed of live transactions or view their own. It also allows users to create accounts and displays statistics about Auxilium.
AWS (Amazon Rekognition, S3 Bucket): We used Amazon Rekognition to bolster authentication for our web platform. We upload the user image into the bucket and use the AI library to compare this image to all other users. Since improving credit history is a critical motivating factor for people to repay loans, we want to ensure that no individual can reset their credit scores by creating an alternate identity.
Backend (Node.js, Express.js, MongoDB) : The backend of our service acts as a liaison between all the other services. It interacts with the Stellar network in order to populate the web view with the transaction history. It also relays vital information between the ATM and Twilio, such as withdraw limit and number of coins deposited.
Twilio: Twilio is a pivotal part of our application and the means which we use to securely communicate with the client. Upon receiving a text message or phone call from the user, the Twilio flow verifies the user identify by hitting authentication endpoints in the back-end. From there we allow the user to conduct many operations over the phone such as withdrawing and depositing money at the ATM. Attached above is a screenshot of the Twilio flow diagram.