Yohan Chalier Projects Portfolio Blog

RESTful API for a Messaging Service with NodeJs

NodeJs Server

This project was my first attempt at making a chat application. The goal was to build a custom messaging web application, with several, potentially different, clients communicating. The user expericence targeted was close to popular messaging apps such as Messenger or Telegram.

This project was also my first attempt at NodeJs. I did not use the popular framework Express to get some experience building it myself. The API I ended up with includes a OAuth-like authentication system, and some simple CRUD operations features for channels and messages, gathering inspiration from the old but good IRC protocol. Users, channels and messages are stored in a simple SQlite database.

Clients

The repository contains one simple web client that can be deployed on any static server. Communication with the API is handled by a Javascript bit of code.

First deployment tries among some friends also showed the need for a notification system. Thus, I added a small Android application, running in the background, communicating with the API and notifying the user when a new message in a watched channel is posted.

Observations

The overall project was fun to implement, until connection stability became an issue. Without a proper socket server setup, it can be quite difficult to know who is connected, and messages could get lost or undelivered. I gained experience for sure, but a proper IRC server installation fits the need and works perfectly.