The US has the most cases of credit card fraud in the entire world at about 38.6% as of 2018, which amounts to about $9.47 Billion! For this reason, it is critical to catch fraud as quickly as possible so that we can protect ourselves and others from becoming victims of fraud. For this reason, we wanted to develop an application that tries to determine how likely a credit card transaction is to be fraudulent so that we can stop fraudulent charges before they occur! (Data from:

What it does

ProPay is a real-time credit card processing solution with intelligent fraud detection. Using the latest cutting edge technology bundled with our large-scale backend data, it can process up to petabytes of incoming data and instantly determine whether transactions are fraudulent.

How we built it

The front-end of the application is a website that was built using node.js. Data retrieved from the web application is then sent to Apache Kafka, where the data is streamed to Apache Spark. Here the algorithm, written in Scala, runs that determines whether the transaction was fraudulent or not, and the output is then written to a csv file.

Challenges we ran into

The biggest challenge was communication; throughout the course of the project there were multiple instances of confusion between team members due to a misunderstanding how they should be implementing their part and connecting it to the other parts.

Accomplishments that we're proud of

We are proud that despite our challenges, we created a fully functioning application utilizing Kafka and Spark, which we have not used before.

What we learned

We learned a lot about Big Data technologies, including how to use both Kafka and Apache Spark. In addition, we also learned about fraud as it relates to finance and detecting it.

What's next for ProPay

The next step for ProPay is to replace the second stage of the fraud detection algorithm with a machine learning algorithm, potentially the k-nearest neighbor algorithm.

Built With

Share this project: