Secure Chat with SocketIO, NodeJS and AES Encryption

This application leverages SocketIO, NodeJS and AES Encryption in order to provide a secure chatting experience. The idea is to encrypt the chat messages before the message is sent over the wire. The application allows people to invite others to a chat room by providing the inviter and invitees’ email addresses; the application creates a unique link for a chat room and generates the chat key and emails it to the participants. It is up to the participants to visit the URL pointing to the chat room and enter the provided chat key. One feature of security here is that the chat key is never broadcasted across the wire since it’s copy pasted by the participants to send and receive encrypted messages.

The application source code is located at – https://github.com/saichaitanya88/secure_chat/

Try it out for yourself at https://sai-secure-chat.herokuapp.com

 

secure chat app flow
Secure Chat – Demo

If you wish to fork the GitHub code, one thing to note is that the NodeJS application requires the Gmail SMTP email and password to be provided when launched. This can be done so like this –

smtp_email=email@gmail.com smtp_pass=password supervisor app.js

The forked code can be deployed in seconds to Heroku by integrating with GitHub!

Live Demo – sai-secure-chat.herokuapp.com
Source Code – https://github.com/saichaitanya88/secure_chat/

Advertisements

Microservices and future of Software Development

I found a recent podcast on software engineering radio[1] to be insightful on the state and future of software career. With more organizations opting to implement an SOA, Microservice architecture and like on light weight frameworks, it appears that their decision is also influenced by software developers being open to switch jobs once every two years (on average as I speculate). With an increasing turnover in employees, it would make sense to build your application using the architecture that is not susceptible to loss of knowledge. The idea that a microservice can be built, tested, and deployed within a month means that a subset of software development jobs will transition from a 5-6 year careers into a 6-12 month gigs. Websites like fiverr, elance, freelancer, and upwork play an increasing role in facilitating this transition.

[1] http://www.se-radio.net/2015/12/se-radio-episode-245-john-sonmez-on-marketing-yourself-and-managing-your-career/