Introducing SpoofProof.net
A project for the SBHacksIII Hackathon (24 Jan 2017)
Last weekend I went to SBHacksIII (a MLH hackathon at UCSB) with a few friends. At the hackathon we made SpoofProof, a web application to automatically detect fake news.
A full writeup of SpoofProof is available on devpost.
What I worked on
In order to maximize our development efforts we broke the project down into several core modules: web scraping, credibility analysis, and web interface. I worked on developing the web interface for SpoofProof and configured the web server.
Before we started hacking, we determined we would use python as our programming language due to its fantastic library support. This was perfect for me as I could use Django as my framework and directly call into our analysis code. Using Django, I was able to quickly create an app with 2 pages (index and results) and a REST endpoint for submitting urls. Then, using Twitter Bootstrap and JQuery, it was simple to slap together an interface which I prettied up later with some CSS.
Next came the task of getting the server online. We took advantage of some swag we got to register the domain and set up a small DigitalOcean VPS. I set up Nginx as a proxy server that serves the static files and proxies traffic to the Django application running under gunicorn. This is mostly good but there are a couple small issues I didn’t work out. First, the gunicorn daemon isn’t running as a service; if the server ever goes down someone will have to manually start it again. Second, I should really set up another user to run gunicorn so that it isn’t running as root.
The Takeaway
This was a really fun project to work on, and it was cool to see what we could acomplish in 36 hours.
The source for SpoofProof.net is available on github.