This is my university graduation/last year project. It's a chat system with end-to-end encryption. This repository contains the server-side application of the project and it's a Ruby on Rails application with PostgreSQL as the DBMS. The client-side of the system is an Android application written in Kotlin. You can see the source of the client app under this organization in the "Client" repository.
Probably not. At least not in a real production environment. The reason for this is:
- Cryptography is hard and it takes someone who knows what they're doing to get it right;
- Even if I knew what I was doing, it would be foolish to deploy untested and unproven encryption protocol;
- I'm most certainly not qualified to do anything related to cryptography. After all I'm just a university student with little to no cryptography experience.
During my university years, I was always curios about cryptography. So when my project/last year came, I figured this was my best chance to explore cryptography. I think I learned a few things, so I think it was worth it.
I began work on the project early May 2020, and I wrapped it up mid October 2020. So I worked on this leisurely and intermittently for about 5.5 months. I'd estimate that translates into 2 months of fulltime work.
Because I saw no reasons to not open source it.