Inspiration
One of the main features that we thought of implementing was ensuring that we would be able to encrypt files which are sent over the internet in such a manner that one else, other than the recipient would be able to view them. As a result, with AES256 encryption, we created a simple interface that allows users to upload their files and limit the number of downloads while our backend, carefully changes and makes these files
How we built it
The front end was built with ReactJS, while we tried to make various backends using FASTAPI and NodeJS because there were issues with regards to teh cryptography
Challenges we ran into
We were not able to complete the UI aesthetics as the functionality mattered more, however, with a solid backend, we are able to create an application that works and more importantly serves people better than most current implementations with its ease of use and universal deployability.
Accomplishments that we're proud of
We managed to change the PDFs in real time, at a binary level, using existing libraries, and military level encryption standards, which make PDFs completely unreadable, furthermore, boosting and ensuring that communication between lawyers or anyone on the internet remains safe and secured.
What we learned
We as a team learnt that there are many challenges that we faced, from handling encryption going wrong to ensuring that most of our products were suitable for the usage of regular people. Furthermore, we had a lot of bugs on the way as we realised that handling file data is not as easy as it seems since most of us deal with JSON replies when we build most of our products, it was the first time that many of us learnt of the byte level encryptions which are used around the world.
What's next for balance
As the school semester starts, most of us plan to make this into an easy to use, web based application which would not require any server side handling at all(it already works locally), furthermore, as the proof of concept for encryption works better than we thought, we are thinking of further enhancing the encryption that we are using by trying out and learning stronger encryption methods as our team believes that this is going to be the way not only for security, but for the basic human right of privacy.
On the technical side, our team did to an extent try to adhere to linting guidelines, but we never enforced it and we plan to make our code StandardJsX linted to prevent bug errors from being thrown and changing it to TypeScript when time permits
Built With
- firebase
- firestore
- javascript
- node.js
- react
Log in or sign up for Devpost to join the conversation.