Inspiration
Technology in our modern world is advancing at a rapid rate, quickly challenging our existing tools and paradigms forcing us to adapt as new discoveries are made. Most importantly (and dangerously), this includes cybersecurity which helps keeps everyone's private information secure from the President all the way to your neighbor down the street. When rumors came about the SHA256 encryption had been cracked (which most modern systems currently use), it was a wake up call that the encryption algorithms had to keep up. As a result, we wanted to implement one of Signal's quantum-proof encryption algorithms to keep data secure and implement it into a secure messaging app!
What it does
SlimX is connected to a secure MySQL database where people can register and login to our app with user authentication maintained by JWTs. Once a user is logged in, they can initiate a chat or "handshake" with another user (if they know the recipient's email). Once the other party accepts the secure handshake, they can begin chatting each other in real-time. Messages are encrypted and sent to be stored the database then sent back to the second party. With signal's algorithm, only the intended recipient and their private personal keys are able to decrypt the message intended for them. Additionally, there are 3 fun chat bots with 3 distinct personalities that you can interact with if you need any help drafting up your next message or need help interpreting what one of your messages means!
How we built it
This project was developed with 2 main technologies; Rust for the backend client/server and Flutter for the sleek and modern front end. We also utilized a Rust-Flutter bridge library to help facilitate communication between the two languages - Flutter would create a user-friendly interface that the client interacts with and Rust with it's powerful computational tools can perform all the needed encryption calculations in the blink of an eye. The chat bots were integrated using an OpenAi api library in Flutter able to utilize the cutting edge technology of GPT. The database was hosted with MySQL.
Challenges we ran into
Relatively inexperienced dealing with Websockets, so that was definitely a great hurdle for us to overcome and learn. Additionally, the Rust-Flutter bridge library recently updated and was troublesome at first to adjust to the new function signatures/designs.
Accomplishments that we're proud of
For only 24 hours, we feel like we were able to create a completed application chalk full with many features and moving parts. A lot of work went into making the encryption, handshake, and key exchange work as well as authenticating users. On top of that, we were able to deliver an application with a lovely UI/UX as well as incorporate OpenAI's chatbots in here as well for a well-rounded, complete package.
What we learned
Websockets and making two not-so-similar languages communicate each other in a very intertwined way is not easy (shocking). It definitely took a lot of trial and error as we were getting our dipping our toes in the pool, but it got easier the more we worked with it. Additionally, all of our contributions were deeply intertwined so our communication as a team was important and making sure we were all "lined up" with our development.
What's next for SlimX
Go big or go home!
Log in or sign up for Devpost to join the conversation.