korena's blog

Modular Web Systems

(data migration in progress)

Asset management interface

  • Location: Kuala Lumpur International Airport, Malaysia
  • Role: Web Application Architect
  • Technologies: Java, MariaDB, Netty, Embedded Jetty, Maven, JavaEE

This project was about implementing a physical assets management web application that enables the airport management to monitor and manage assets such as trolleys, baggage, and any location based asset within KLIA building. Sensors were attached to tracked assets which allowed them to constantly stream raw data to distributed, network enabled nodes, that in turn relay the information to a central server.

Server side:

The application had two tiers at the back-end:

Real time, low latency monitoring:

This part of the system was expected to receive live raw data in the form of a stream of bytes from the network enabled nodes from around the Airport building. The raw data was then to be formatted and consumed, through a real time processing pipeline that constantly logs metrics into a database for later analysis, and at the same time push updates to all connected clients through WebSockets.

Management console back-end:

A standard web application authentication and authorization setup, with multiple roles for multiple access levels and types of accounts.

Client side:

The client side was built with responsiveness in mind, Material Design Lite framework was used for the UI design, and structured vanilla JavaScript to implement the functionality. The server delegated many tasks to the client side, when load is high, the server instructs the clients connected to the broadcasting WebSocket to perform some tasks on the client-side to ease the load on the server, which was measured using a passive structure that collects information about the number of processed raw packets on the network.

Personnel tracking system

  • Location: Munich, Germany
  • Role: Web Application Architect
  • Technologies: Java, MariaDB,JSF , NIO sockets, Embedded Jetty, Maven, JavaEE, Google Closure Library

This project was developed for an annual international exhibition for the purpose of keeping a live view of all personnel of the organizing company. RFID tracking devices (RFID tags) were handed to each of the 300 employees, to facilitate communication between said employees and the information counter. The devices where equipped with buzzers that could be activated through the web interface at the information counter. The devices also had buttons for acknowledgment, which are sent to the same information counter web interface.

Server side:

The back-end consisted of an embedded Jetty Java Application that exposes a broadcasting WebSockets endpoint for the front desk applications to hook to, and a stack of managed beans and JSF infrastructure to be utilized by the Admin console. The server was connected to networking-enabled devices (active RFID gateways) that translated the RFID protocol used by the tracking devices and exposed a low level byte stream based API for the central server to query and control. The RFID gateways were distributed in the tracked space to facilitate location based tracking of the RFID tags.

Client side:
Admin console:

The admin console of the application, which handled filling the database, defining the tracking areas and configuring the devices was built with JSF technology. It required authentication and a live authorized user session to interact with the server.

Front desk application

No authentication, live map view of all mapped areas, showing the triangulated location of tag devices as icons that change color based on the state of the device (button pressed, battery low, buzzing ...). This part of the application was developed using Google Closure Library, as the client side shared some processing responsibilities with the back-end, and was large enough to warrant a more structured dependency and code management than possible using vanilla JavaScript without frameworks.

Custom Corporate management system

  • Location: Kuala Lumpur, Malaysia
  • Role: Web Application Architect
  • Technologies: Java, MariaDB, Embedded Jetty,Apache Oltu, Maven, JavaEE, Google Closure Library

This system is a full fledged web application consisting of multiple distributed modules and stitched together using Oauth2 authorization and authentication setup.