Inspiration
"Information is the currency of democracy." - Thomas Jefferson
Right now over 1.5 billion people around the world live with restricted internet access due to government oppression. To put it simply, controlling governments censor the internet by blocking websites that don't align with their ideologies. Once an oppressive government identifies a site hosting content they don't like, they blacklist it, preventing anyone in the country from accessing it. The freedoms we consider to be part of daily life are a luxury for them.
The most extreme example of this we have seen in the last two years has been the Taliban takeover in Afghanistan. Once the Taliban took power many human rights were thrown out the window. There were reports of roadblocks where members of the Taliban would stop everyone on the road to see what apps they had on their phones. If anyone had an app promoting beliefs counter to those of the Taliban, they would be taken away or killed on the spot. There were also reports involving members of the Taliban going door to door, checking people's devices inside their homes for any content they deemed unacceptable. For these people, the content visible on their devices is a matter of life and death.
Our team developed a simple toolkit to support access to information through a unique decentralized distribution method that is by nature out of hidden on the devices of the users. We aim to slowly topple the information monopoly held by these oppressive regimes by enabling the people under their authority to safely get access to information, hopefully one day leading to the transformation of their governments and the restoration of their human rights.
What it does
Our toolkit is for anyone who runs a website and wants to support freedom of information around the world. It puts the power in the hands of website owners to decide what content they want their website to host. By passing a PDF into our tool along with the desired name of their website endpoint, the host will be given two HTML files, one that acts as a downloader with the PDF encoded, compressed, and embedded inside of it, and another that acts a reader page, which enables easy reading and management for all saved documents on the user's device.
The downloader page saves a compressed version of the document into a database in the user's browser cache, which can be read only by the reader hosted on the same website, thus mitigating the risk of having the documents saved directly to the device's filesystem. Running the tool multiple times with different input documents will generate a unique downloader page for each one, with each download page automatically redirecting to the same reader page to minimize the number of files that the website owner has to host.
How we built it
Our tool is built using Python, and it generates HTML files with all the CSS and JS embedded in them based on templates we designed for easy downloading and reading. The downloader page saves the compressed documents to IndexedDB, then redirects to the reader page. The reader page caches itself for offline use and can read all the PDFs that have been downloaded from the same domain.
Get Involved
You can help support access to information today by simply running our tool and hosting the two resulting HTML files on your website. You don't even need to host the document you want to share with the world on your website as it will be embedded within the HTML downloader page. We recommend using a unique name for your endpoint; something that wouldn't be detected by automated dictionary scans and wouldn't raise any flags for network surveillance systems. Upon running the tool, you'll notice that the reader page has a randomly generated name. We recommend sticking with the randomly generated name when you host to help prevent detection by automated scans.
Once you're hosting your documents, pass the URL to the downloader page(s) to people you trust, and let them spread through your trust network. If you want to learn more about how you can share your URL(s) with the people who need it the most feel free to get in touch with our team.
What's next for Files for Freedom
Looking forward, we would like to implement file encryption to provide an additional level of security for the users and the hosts. We also have dreams of implementing a decentralized platform to help facilitate the sharing of URLs to download pages across the internet through relational trust networks.
Built With
- bootstrap
- css
- html
- indexeddb
- javascript
- python
Log in or sign up for Devpost to join the conversation.