Case

PostNord

System for tracking delivery drivers’ progress

Web development Frontend Backend Architecture

Background

PostNord had developed a prototype for an application with the aim of collecting data to provide decision-makers with data on fuel consumption in order to estimate the carbon footprint, and whether there was room to optimize and improve the delivery process. Rhyme was brought in to migrate and develop the prototype into a real application before launch for internal use for the whole of PostNord Sweden. Our job was to transfer the entire architecture (server instances, databases, etc.) to Postnord's own Amazon Web Services account and to lead a team of two developers in the work of further developing the application.

A Tablet

Challenge

Before the launch, the big challenge was to get the architecture to PostNord's own AWS account. Because of the sensitivity of the data handled, we needed to make sure that it was encrypted from beginning to end. We inherited the prototype from a digital agency and collaborated with them and PostNord's IT to design the desired architecture in PostNord's AWS account. We also suggested and took the opportunity to review the existing architecture to see if there was potential for improvement.

After the launch of the internal application we worked on further development, e.g. new connections to other internal systems and new features for data visualization - used to create reports regarding fuel consumption, etc. We also received orders from other teams at PostNord to help develop their applications.

A Tablet

Solution

The encryption of the data when it was in transit to and from the Redis cache was achieved by implementing a so-called stunnel on the EC2 instance that would communicate with the cache. We chose to separate the backend and frontend so that it was easier to restrict access to the backend from the outside and also put the database and the Redis cache in a private subnet for security reasons.

Other techniques used in this project were:

  • MysSQL for database management
  • React for the rendering of the frontend
  • Redux for state management of frontend
  • SASS for the styling of the frontend
  • Node.js & Express.js for backend
  • Socket.io for retrieving data in real time
  • PHP for the scripts that ran on the instances
  • AWS for hosting EC2 instances, RDS database, Redis Cache and subdomains in Route 53

A Tablet

Results

The result of a well-functioning collaboration was a highly valued application for tracking, optimizing and streamlining deliveries. In the long run, this led to other departments at PostNord contacting us to contribute to the development of their applications and a new order for one to replace an existing obsolete application.

A Tablet