PS 4 - Reshaping Payments

Inspiration:

The need for secure and safe transferring of Data

Imagine a world where everyone, regardless of their technological expertise, can securely manage their finances with confidence. Our inspiration for this project stems from the desire to create a safe, accessible, and user-friendly digital wallet that caters to a wide range of users, including seniors and those in underprivileged areas. We understand that financial security is paramount, and this project aims to provide innovative solutions to ensure just that.

What We Have Built:

1. Multi-Layered Authentication: We've developed a robust authentication system that ensures user accounts are protected from unauthorized access. Users can choose from various registration methods, including the convenient Singpass integration. Logging in requires a combination of a strong password and a one-time password (OTP), adding an extra layer of security. This multi-factor authentication significantly reduces the risk of unauthorized access.

So for users to make a transfer, they first need to login using their account and email, afterwards if they want to make a top up, transfer or withdraw, they will need to use encrypted PIN number (different from the password in the login session) so double PIN. Then if the top up amount is beyond a certain limit, risk top up will require OTP number to their own email to provide EXTRA security. Then, if they have a guardian attached to them, they will be informed of the transfer so it reduces anxiousness of transferring one's money

2. Real-time Fraud Detection: Our platform employs the power of Stripe's advanced AI and machine learning algorithms to assess the risk level of every transaction. Users receive real-time feedback on the person they intend to transfer funds to, helping them make informed decisions. This fraud detection system enhances the safety of financial transactions by identifying potentially risky recipients. So prior to transferring money to another account, they will be able to see the risk level of another account from 0 to 99 with 0 being the lowest and 0 if the user has never done any forms of transaction in our platform before. The system evaluates hundreds of signals about each payment, using data from Stripe’s network across millions of businesses.

3. Secure Transactions with PIN: Every financial transaction, whether it's topping up funds, withdrawing, or transferring money, requires users to provide their unique PIN number. These PINs are securely encrypted to prevent unauthorized access. This added layer of security ensures that only the account owner can initiate transactions.

4. Guardian Linking: We recognize that not everyone is tech-savvy, and some individuals may need additional support. That's why we've introduced the Guardian Linking feature. Users can connect their account to a trusted guardian who can oversee and verify their transactions. This feature is especially beneficial for seniors and individuals in underprivileged areas who may have limited experience with digital wallets. It offers peace of mind for both users and their guardians.

5. Stripe Implementation: Through our app, users can withdraw, transfer to another account, and top up their money to our app. This is integrated to our Stripe dashboard. This one-stop digital wallet platform also has other features like updating one's profile, looking through one's transaction history and many more.

Our project isn't just about creating another digital wallet; it's about creating a financial ecosystem where safety, accessibility, and user empowerment are at the core. We believe that financial security should be a right for everyone, and we've taken innovative steps to make this a reality. By combining multi-layered authentication, real-time fraud detection, secure PINs, and Guardian Linking, we've developed a digital wallet that truly caters to the diverse needs of our users.

In a world where financial security is of utmost importance, our project stands as a beacon of hope, ensuring that everyone can participate in the digital economy securely and confidently.

How We Built It:

  1. Bcrypt for Data Encryption: To protect user data, we employed the bcrypt encryption algorithm. This ensured that user information, including passwords and PINs, were securely encrypted and stored in our database, making it extremely challenging for unauthorized parties to access or decode this information.

  2. Firebase and Node.js Backend: Our backend infrastructure was built on Firebase and Node.js. Firebase provided a scalable and real-time database, while Node.js served as the server-side framework, enabling efficient data handling and processing.

  3. React Native Frontend: The frontend of our app was developed using React Native. This cross-platform framework allowed us to create a seamless and responsive user interface that can be accessed on both Android and iOS devices. Our seamless and neat design also helps to navigate users especially those who are less savvy and from under-reserved areas to be able to adapt to our digital wallet easily

  4. Stripe Radar for AI/ML Risk Assessment: To determine the risk level associated with each user, we integrated Stripe Radar's AI/ML capabilities. This sophisticated tool provided real-time analysis and feedback on transaction recipients, enhancing the security of our digital wallet.

  5. Stripe Onboarding System: To facilitate user registration, we integrated with Stripe's onboarding system. Users had the flexibility to choose between manual registration and the convenience of using their Singpass credentials. This dual-registration approach ensured a fast and secure onboarding process.

  6. OTP Authentication and Notifications: We implemented OTP (One-Time Password) authentication and notifications as part of our multi-factor authentication strategy. This added layer of security required users to verify their identity during critical actions, such as logging in, transferring funds, or changing sensitive account settings.

  7. Firebase Authentication: We leveraged Firebase Authentication to establish the initial layer of security for user registration and login. Firebase's robust authentication system ensured that user identities were securely stored and managed.

  8. Scalable With Stripe, we can also extend our app to be more scalable and include other payment methods that are locally present in a certain country

By combining these technologies and strategies, we created a comprehensive and highly secure digital wallet system. Our architecture focused on user convenience, real-time risk assessment, and data protection, making it accessible to a wide range of users while ensuring the highest standards of security and privacy.

Challenges we ran into

During the development process, we encountered two significant challenges. Firstly, integrating Stripe with our React Native application proved to be a complex task. This required extensive troubleshooting and fine-tuning to ensure seamless functionality.

Secondly, we faced an issue with the Redux-state management system, where the balance wasn't updating as expected. This required a deep dive into our codebase to identify and rectify the underlying problem, ensuring accurate and real-time balance updates for our users.

Accomplishments that we're proud of

One of our proudest achievements is the successful implementation of our guardian feature, which sets our e-wallet application apart from others in the market. There was a point where we contemplated shelving this unique feature due to the challenges we encountered with integrating the Stripe React Native SDK. However, through persistence and innovation, we were ultimately able to not only integrate Stripe successfully but also build the guardian feature on top of it.

What we learned

This project provided us with invaluable insights into implementing Stripe within a React Native application. We gained a deep understanding of the intricacies involved in integrating external payment systems, which will undoubtedly serve us well in future projects.

What's next for Payday

Looking ahead, we have exciting plans to enhance the functionality of Payday. Currently, users can only link one bank account at a time with our e-wallet application. In the future, we aim to implement a feature that allows users to link multiple bank accounts, providing them with greater flexibility when managing their finances.

Additionally, we have ambitious goals for refining our risk_score feature. We envision a more robust and accurate implementation that will further enhance the security and usability of our application. This represents a significant step towards providing our users with a comprehensive and cutting-edge financial solution.

Libraries and Assets used

Illustrations, pictures, libraries listed in our package.json, stripe, stripe Radar, firestore, firebase, react native template

Biographies of each member

  1. Nguyen - Whenever you win, you remember my name
  2. Duy - My favourite hobby is coding
  3. Vanessa - I m just a normal person
  4. Puri - alrite im done with meeting
  5. Ariella - computer science student with a deep love for coding and harmonious passion for singing
Share this project:

Updates