Skip to content

Cryptchat/Server

Repository files navigation

What is this?

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.

Should you use this?

Probably not. At least not in a real production environment. The reason for this is:

  1. Cryptography is hard and it takes someone who knows what they're doing to get it right;
  2. Even if I knew what I was doing, it would be foolish to deploy untested and unproven encryption protocol;
  3. 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.

Why did I pick this project and not something else?

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.

How long did this take?

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.

Why did I open source the project?

Because I saw no reasons to not open source it.