Skip to content

An iOS and React App to track debt and send/receive payments.

Notifications You must be signed in to change notification settings

raghavbhasin97/Dracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dracker

Swift Version Platform Build Status

An iOS app to track/manage debt. This app allows users to create transactions, add descriptions, tag images, tag notes, and manage them. It features a rich and immersive user experience with 3D touch, quick actions, Actionable User Notifications, and Touch ID/Passcode capability for secure authentication.

UI

Login/Register

            

Dashboard

            

Existing Transactions

    

New Transactions

    

Summary

    

Profile

    

Settings

            

Security

    

Miscellaneous

                            

SMS

    

Email Templates

         

Features

Current

  • Adding transactions with other people via phone number.
  • Registeration of new users/ Login functionality.
  • Authentication via Firebase
  • Unique QR Code and adding transaction using QR Code.
  • Access to data anywhere via AWS.
  • Text messages when payments are completed.
  • Ability to connect bank account (plaid integration).
  • Sending/Recieving money through ACH.
  • Taggable transactions. An image (such as a bill) can be tagged with the transaction.
  • Saving tagged images to camera roll.
  • Enabling/disabling user notifications.
  • Actionable notifications (ability to silence a particular payment reminder).
  • User ratings based on transaction history.
  • Enabling/disabling touch ID.
  • 3D touch compatibility for Quick Actions.
  • 3D touch for Dashbard table cells.

Upcomming

  • [] Web App (React)

Requirements

  • iOS 10.0+
  • Xcode 9.3
  • Swift 4.1

Architecture

  • DynamoDB is used to store all the data for user transactions and other details
  • S3 is used to store profile images and tagged images with transactions.
  • Twilio is used to send messages for payment completion.
  • Firebase is used for Authentication.
  • SendGrid for emails.
  • AWS Lambda fir backend
  • API Gateway for API calls to backend
  • Plaid for bank account integration
  • Dwolla for making ACH Transactions

Modules/Integrations Used

  • Dwolla (ACH Transactions API and identity validation with verified customer)
  • Plaid (Connecting user's bank account to dwolla)
  • AWS (Backend)
  • Twilio (payment completion notification)
  • Firebase (Authentication)
  • DZNEmptyDataSet (For nice empty cell look)
  • Alamofire (API calls)
  • SendGrid (for emailing Welcome, Verification, Note and Email change messages)

Scripts

Cleanup

A configrable automation script that cleans up the AWS and Dwolla environment from test data. To be run pre-deployment in production. Script allows accounts to be preserved by adding the 'Email' in 'preserve_users.txt' file.

ACH Processor

A simple script that is scheduled to run once every day to check on status of pending transactions and notify users when the transactions are processed.

Meta

Raghav Bhasin – @bhasin97raghavbhasin97@gmail.com