Inspiration
As college students, we get a shockingly high amount of phishing emails. Usually, the signs are easy to spot - Misspelled headings, unknown senders, terrible grammar, etc. But with the recent growth of large language models (LLMs), it's easier than ever before to be fooled by a phishing email. Gone are the days of phishing emails exclusively fooling your grandparents - 1 Fish, 2 Phish exemplifies both how realistic phishing emails can be in the modern day, and provides AI-powered explanations of how to spot difficult phishing emails from afar.
How we built it
The build process started poorly, with us struggling to find a dataset to incorporate. After several hours of searching and comparing datasets, we finally settled on this one. Using two of the files within this, we made a python program that grabs a random email from one of the files, based on a simulated coin-flip, and runs it through Google Gemini to re-format it, hopefully making the phishing emails less obvious. The program is hosted and displayed through Streamlit.
Challenges we ran into
A majority of our challenges revolved around the dataset itself; we struggled to find one that had all the data we wanted for our project. When we finally found a satisfactory dataset, we encountered another problem: the specific file we were looking at only contained phishing emails. To work around this, we took another file from the same dataset that contained only legitimate emails, generating a random number between 0 and 1 inclusive to determine which file to pull from.
At the very end of our development process, when we were finished with the website itself, Streamlit had an error in which we could not access the URL we had been using up until that point. We quickly realized that it was an issue with our domain name, which we quickly fixed.
What we're proud of
This project brought us a number of firsts. It marked our first time ever participating in a hackathon, first time manipulating datasets for a project, and first time using generative AI to format and analyze data. Within the first few hours of starting our project, we felt incredibly lost. We nearly gave up on the idea for our project because of the myriad of growing pains from trying so many new things in such a short amount of time. But, after taking a step back and giving ourselves time to come up with solutions, we were able to come to a finished product that we felt proud of. We came in worried about whether we would finish the project at all, and came out proud of how much we grew by throwing ourselves headfirst into learning so many new things.
Log in or sign up for Devpost to join the conversation.