Phone scammers make hundreds of thousands of phone calls a day, and many people fall for it. The inspiration for this project was me wanting to help combat this problem and empower others.

What it does

User-facing, there are three main sections to this app.

- Learn

Learning about what different kinds of phone scams and how they work helps people identify them before they are scammed. This section also includes lots of links and references for further learning.

- Report

The core of NoScam is reporting the phone numbers of scam callers. This allows us to collect data on scammers and use the data to help others.

- Explore

Here people can explore our data to help them understand scam callers better. Users can search a specific phone number to see if it's been reported before for scamming. Users can also view a heatmap to visualize where scam callers are coming from. Additionally, there are graphs that users can analyze to help understand statistics on scam types and volume of scam calls over time.

How we built it

I completed this project solo, so I did the best I could to run with my ideas.

This project relies heavily on Google Cloud Platform. The back end is coded in Node.js + express.js, which is connected to the Firestore database. To render the heatmap, the Google Maps API was used.

The front end was coded with HTML, CSS, and JavaScript. The charts were made with the Charts.js library. Some additional Node.js modules were used to help transfer data.

Challenges we ran into

This was my first time working with Firebase, but it was a fun experience. It was intimidating at first and most things ended up working out with trial and error.

Another problem was that I ran into some issues with the asynchronous code. Things were running before I meant them to run, so it took a while to figure out a solution.

I also had a hard time setting up Firebase hosting. Wasn't the easiest thing to figure out so I ended up hosting it on my own Ubuntu server.

Accomplishments that we're proud of

This project is developed with a lot of future proofing in mind. New scam types can easily be added to the database and all parts of the app will automatically be compatible with the new scam type. All data shown in the demo is live and accessed from the database.

I'm proud that I got to finish coding everything in my initial concept by myself. It was a challenge but I did it. I'm also proud that I got the charts and maps working.

What we learned

I learned a lot about Firebase, and how to make charts! It's also just good to practice coding.

What's next for NoScam

If more data can be collected, more complex data analysis for trends can be run. The database is set up for it. Additionally, a wider variety of charts and tools could be developed to help visualize a larger dateset.

Share this project: