Discordium

Discordium

Alexander Serebriiskii and Joseph Hines

Backend

  • The backend of this application is ASPNetCore
  • User registration and authentication is handled via C# cryptography libraries and ASP controllers
  • Secure communication between users is handled by the SignalR library
  • SignalR is encrypted via the existing mechanism for SSL/TLS encryption

Frontend

  • ​Frontend for Discordium is built in React
  • Formik is used to send data to the backend
  • ReactJSS is used for styling
  • SignalR javascript library is used to ensure security of the messages between clients

Technical Features

  • ​Proper, secure, user registration, where only the username is stored in plaintext form
  • End to End encryption for chats
  • Multi-User chats with encryption

Considerations

  1. ​The encryption mechanism we ended up using allows for secure End to End communication by relying on the work already done to secure browser communications. It's big downside is that it poorly handles non-disposable chats
  2. Storing and re-sending encrypted messages when a user logs on is a technical challenge bordering on the infeasible in the scope of this project
  3. Adding more channels like Discord would be handled by adding more SignalR hubs

Demo

https://discordium.dev