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!

Built With

Share this project:

Updates