Giter VIP home page Giter VIP logo

raghavbhasin97 / dracker Goto Github PK

View Code? Open in Web Editor NEW
23.0 6.0 7.0 55.42 MB

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

Swift 63.18% Python 12.43% HTML 9.44% Ruby 0.05% JavaScript 10.82% CSS 4.08%
notifications firebase firebase-auth aws-lambda aws-s3 aws-dynamodb aws-apigateway rest-api touchid aes-encryption qrcode sendgrid dznemptydataset plaid dwolla twilio reactjs javscript xcode10 swift4-2

dracker's Introduction

Dracker

Swift Version Platform Build Status

An iOS and React app to send/receive money and 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

iOS V2

A more refined UI that utilizes the Tab Bar style along with some of the latest HCI guidelines. A total redesign of a few screens and a new completely customizable Action Sheet component.

Login & Forgot Password Screens

    

Dashboard

Existing Transactions

    

New Transactions

    

Summary

Profile

Wallet

Settings

        

iOS V1

Login/Register

            

Dashboard

            

Existing Transactions

        

New Transactions

        

Summary

    

Profile

    

Settings

            

Security

    

Miscellaneous

                            

React

Login

Password Reset

    

Register

    

    

Home

    

Wallet

Summary

    

Profile

Email Change

Password Change

    

Invalid Page

Text Messages

    

Emails

         

Features

Current

iOS

  • 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.

React.js App

  • Retriving Transactions list.
  • Registeration of new users/ Login functionality.
  • Authentication via Firebase
  • Access to data anywhere via AWS.
  • Access to your Dracker dashboard, wallet, summary and profile.
  • Updating email and password.
  • Setting default funding source.

Requirements

  • iOS 10.0+
  • Xcode 9.3
  • Swift 4.1
  • React.js 16.6
  • npm 2.1

Architecture

Rest API

  • API Gateway and AWS Lambda are used to deploy the REST API
  • 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
  • Firebase is used for Authentication
  • SendGrid for Emails
  • Plaid for Bank Account Integration
  • Dwolla for triggering ACH Transactions

iOS Application

  • Dracker API for all operations (REST API calls)
  • Firebase is used for Login (Username/Password Validations)
  • Plaid for Bank Integrations (Getting an authentication token to exchange at backend)

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.

Webhook

A webhook created for dwolla, that handels clearing of ACH transactions. In case of successful ACH clearing, it sends out a text to the customer with transaction details. In case of unsuccessful ACH clearing, it sends out a text to the customer with transaction details and Dracker entry so the customer can track back and re-attempt to settle the payment.

Meta

Raghav Bhasin – @bhasin97[email protected]

dracker's People

Contributors

raghavbhasin97 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

dracker's Issues

Documentation

Hello @raghavbhasin97 that's an amazing project id love to rebuild it using my own accounts. Can you please share how to configure the third party servers to be connected to Dracker app.
Thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.