↓    1. Concept
Our website and email address baitbot.ai@gmail.com are now up and running. The project is also open source on github or can be remixed on glitch. We are always happy about contributions.
1.1
THE CONCEPT
Baitbot is an email bot that has made it its job to steal the time of scammers. Just forward your scam mails to Baitbot's mail address. He will then start an email conversation with your scammer, while you can check their message history on our website with a unique code supplied by Baitbot.
1.1.1  If you get a scam email, forward it to Baitbot and let him handle it.
1.1.2  How Baitbot works, in more detail.
↓    2. Research
2.1
RESEARCH
In order to categorize the content of scam messages later on, we first informed ourselves about the types of fraud that exist. The most common thpes of online scams we found are phishing, catfishing, money laundering and - especially popular - prepayment fraud. We also collected scam mails to look at the way scammers talk to their victims and used these to generate answers for our artificial intelligence.

To keep the fraudsters engaged, the conversations had to be delayed and stretched out as long as possible by using vague answers and many ignorant questions designed to make scammers explain everything in excruciating detail. We also built dialog decision trees and simulated conversations to find out how to talk to scammers and get them to communicate as long as possible with our bot.
2.1.1  Extensive research to help us get into the mind of the scammers.
↓    3. Implementation
3.1
IMPLEMENTATION
We wanted our bot to be able to receive mails and reply to them automatically. To achieve this we needed a webserver that can handle emails. The server runs with the runtime Node.js and modules like Nodemailer. With the help of Natural.js and a lot of conversational raw data we compiled ourselves - with a focus on online fraud - the bot should keep the scammer hooked in a conversation for as long as possible. The AI behind the mailbot learns by feeding it new raw data. Our website baitbot.glitch.me lets the user view the conversation Baitbot has with "your" scammer via a unique code. As soon as we have more data we plan to compile a Hall of Fame with the "best" conversations between Baitbot and scammers.
3.1.1  The program consists of many different modules that perform individual functions.
↓    4. Coding
4.1
DIVE INTO THE BACKEND
Here are some examples of important code
files and their functions:

"getMail.js" is responsible for retrieving new mails. It fetches the mailbox of our bot and parses all new messages into the database.

"user.json" is our central database. All received messages as well as the bot-generated messages are stored here. Additional booleans and the date help other modules classifiy the mail for further use.

With "server.js", which runs via Node.js, the numerous functions of the program are coordinated. With the help of "post" and "get" requests data is retrieved from the server and sent to the client. The server also has functions that are responsible for "calibrating" incoming mails. Unnecessary characters are for example uremoved from the text of the mail or the content is otherwise shortened for further processing.

"Bot.js" is the AI of our program. In this module incoming texts are analyzed and answered. The data sets in "answers.json" and "data.json" represent the backbone and training data for this process. Incoming input is analysed and interpreted according to the scammers intentions. For a found intention, the bot looks  for a suitable answer in our database "answers.json" and outputs it. Each sentence is analyzed individually, while duplicate answers are avoided.

The two datasets "data.json" and "answers.json" reflect training data and possible answers of the bot. The training data includes many formulations for the same intentions. Using this data, the bot learns to interpret intentions.
4.1.1  getMail.js fetches the raw mail-data from our mailadress baitbot.ai@gmail.com.
4.1.2  Json database where all our fetched mails and information about the scammer is saved.
4.1.3 server.js is the backbone of our code, it has a lof of function, like the webserver setup.
4.1.4 bot.js is the artifical intelligence behind our bot.
4.1.5 data.json and answers.json are Baitbots vocabulary.
↓    5. Interaction
5.1
INTERACTING WITH BAITBOT
When forwarding a scam email to Baitbot, the user gets a one-time confirmation mail with a thank you note for participating and a unique code. This code can be used on our website baitbot.glitch.me to check out the conversation Baitbot has with ”your” scammer. Baitbot then tries to answer to the forwarded scam email you forwarded as well as it can. If the scammer answers Baitbot the following conversation only stops when the scammer stops replying – hopefully after a long chain of messages.
5.1.1 Baitbot.glitch.me, the home screen. Enter your unique code here to check your scammers conversation.
5.1.2 An example for a conversation with a scammer.
General Project Information
TEAM
Lucca Strecker
Jonas Pflug
Lukas Brendle

PROJECT DURATION
12 weeks

SUPERVISION
Prof. Hartmut Bohnacker &
Prof. Benedikt Groß
MY ROLES
Ideation, Concept, Frontend, Backend, Visual Design

COURSE
System Design,
4th Semester