Inspiration
Around the world, journalists work tirelessly as part of the free press in order to keep us, and our communities informed of significant and life-changing events. However, the unfortunate reality of the world is that there are many bad actors who would like to silence individuals attempting to exercise their right to free speech.
Recently we’ve seen a rise in violence targeting journalists and the press worldwide, from dozens of journalist casualties in Ukraine, to hundreds of journalists killed in the Israel-Hamas war.
Lifeline seeks to ensure that no silencing, even death, can prevent an individual from saying what needs to be said.
What it does
Lifeline provides an easy, free, and open-source deadman’s switch to anyone, regardless of technical experience.
Lifeline allows anyone to create an account and upload a text payload, which could be anything such as a short message, a last will, an expose, or even decryption keys to their casework. Users can also designate specific intended recipients for the payload.
After account creation and setup, Lifeline’s servers will regularly ping users with email reminders to login and reset their switch countdowns. If Lifeline detects that a user has failed to login within the last 7 days, then the server will blast all designated recipients with the payload the user specified.
How we built it
We built Lifeline using Angular for the frontend, Express for our server framework, and Mongoose and MongoDB Atlas for our backend database. First, we storyboarded our project and compiled a list of tasks to be completed for the first initial stage of setting up a frontend and backend. For the first stage we focused on allowing User Logins and account creation.
In our second development phase we implemented the majority of the endpoint APIs for our backend, allowing the frontend to communicate with the backend database.
Challenges we ran into
We encountered significant issues with implementing file uploading. Some of our dependency conflicts for file uploading functionalities could not be resolved within the Hackathon timeframe, so we slated it for a future feature release.
Accomplishments that we're proud of
We are incredibly proud to have been able to bring Lifeline into reality. Now there is an open source and free deadman’s switch option for civilians and journalists. We successfully implemented login/authorization capabilities and also the ability to send out regular and blast emails.
What we learned
- Design patterns for login and authorization flows
- Server-generated emailing functionalities
What's next for Lifeline
In terms of immediate goals, we first and foremost want to deploy Lifeline to AWS and make it available for users around the world.
For immediate goals, we will implement at-rest encryption for the database, ensuring client data integrity even in the event of a total breach of our systems. We will also enable file-uploading in order to increase the variety of information that can be stored on our servers. Both of these functionalities were things that we really wanted to have implemented but we did not have the time to do so.
Our most lofty goal is to make Lifeline and any forks of this project so prolific that it becomes impossible to silence civilians and journalists attempting to exercise their free speech. In short, we wish for Lifeline itself to become obsolete.
Log in or sign up for Devpost to join the conversation.