Inspiration
As young adults transitioning into the broader financial system, we've all started to realize just how complicated it gets. To make the most of your money, and do so in the safest way, there's complex setups of different accounts and assets, and ensuring your money is safe can require daily monitoring. However, for many, this simply isn't something they want to and can do. There are existing tools out there for fraud detection, such as CreditKarma or RocketMoney, but they focus on those who are very integrated into the financial system, having multiple accounts and credit cards. For those who are underbanked, however, the complexity of these tools and the sales pitches they fold in simply are too much hassle. As a result, we decided to set out to create a simpler, friendlier tool to protect users from and inform users about fraudulent transactions, without all of the complexity and upsells.
What it does
Pufferfish is a mobile application that helps you monitor the transactions on your bank account for various common types of fraud, such as:
- Double-charging (a vendor charging you twice, hoping you won't notice)
- Suspicious transaction destinations
- Large transactions on peer-to-peer payment services (like Venmo and Zelle)
The app alerts users to potential fraud instances, as well as providing a friendly AI-generated summary of the incident.
Additionally, it provides other visualization of a user's transactions, such as by time of day, allowing them to easily visually identify anomalies.
How we built it
The front-end application is built using React Native. The back-end API is implemented using FastAPI, using MongoDB Atlas as a database. Financial data is brought into the application using SimpleFIN Bridge, and Samba Nova's API was used for LLM-based analysis and summarization.
The API is dockerized through a Github Action, and hosted on DigitalOcean's App Platform. The DigitalOcean App Platform app and MongoDB Atlas database are deployed via Terraform, continuously integrated using the HCP Terraform platform.
Challenges we ran into
- Difficulties with CORS and data exchange between frontend and backend
- Balancing ambition and the constraint of 24 hours to develop
- Spotty internet in the venue
Accomplishments that we're proud of
- First time working on a real React Native application
- 3 first-time hackers in the group
- Fully continuously integrated backend and infrastructure, ready to continue development and scale up
What we learned
- How to create and work with complex REST APIs
- How to implement authentication for an API
- How to prompt engineer in order to get programmatically valid output from an LLM
- How to use DigitalOcean's App Platform for simple deployment
- Using Github and HCP Terraform to continuously integrate a repo of Terraform IaC
- How to use MongoDB Atlas
What's next for Pufferfish
- Further feature implementation and polishing of the frontend
- Providing more interfaces for financial data on the backend
- Implementing further scalability on the infrastructure, such as adding load balancing and redundancy
Built With
- digitalocean
- docker
- fastapi
- github
- github-actions
- llama3
- mongodb
- react-native
- samba-nova
- terraform
Log in or sign up for Devpost to join the conversation.