We have and are suboptimal friends who take forever to pay back debts and sometimes forget entirely.
What it does
Repay allows individuals to create debt entries which state that another user owes them a certain amount of money, as well as a description and ; once an entry is confirmed by both involved parties, it appears in the dashboard of each. Once a debtor pays back their debt, the lender can mark a debt entry as paid. Users are assigned a numerical score based on an algorithm which takes into account how early or late they tend to pay off debts and the monetary value, normalized with a sigmoid function; other users can take this score into consideration before lending money.
How we built it
We built a web server API with Node.js and hosted it on RedHat OpenShift. All computation and data processing is done on the backend, including the user score computation. Users' scores are computed using an algorithm which increases or decreases the score from 0 proportionally to how early or late the user pays back debts on average, relative to the time given to pay back each debt. This raw score is run through a sigmoid function to return a score between 0 and 1, with 0.5 implying debts are generally paid back exactly when they are due. This scoring function provides valuable information to users who are unsure about lending money to others.
We built an iOS app using Xcode and Swift 3. Pain, struggles, tears, insanity, and success.
Challenges we ran into
- deleting code that was thought to be committed to Git but actually not committed to Git
- learning iOS and Swift 3
- formulating scoring algorithm
- collaborating with on iOS development
Accomplishments that we're proud of
- not losing confidence despite constant failure
What we learned
- iOS development
- the fact that Xcode and Git are not soulmates
What's next for Repay
- Automated debt payment through Stripe API
- Android app, web portal
- Improved, data-driven scoring algorithm