Properly - Property Management System

ABOUT THIS PROJECT

A new generation all-round platform for property management. Designed to reshape and simplify the process of serving guests and centralize all the operations of the hotel front desk. Its scalable infrastructure combines and automates multiple environments in a single piece of software and is integrated and able to interoperate with all third-party systems from the industry.

 

Our dive into the hospitality industry began with Travia as a marketplace, introducing us to the fundamental processes and setting the concepts of advanced real-time search of hotel inventory, cooperation agreements and booking management as a key challenge.

After building Travia, the GoDo team came with the proposal to create a unique property management system - Properly!

Because there are a lot of property management solutions in the market, our goal was to reshape the perspective and the expectations of the software in hospitality as a solution and develop a modular and role-based property management system that can easily integrate with other third-party systems and interoperate with them. The modular set-up means that the property management system needs to be flexible and fit multiple property types. Meanwhile, the role-based set-up was intended on optimizing the different parts of the system for the person that will be using it. 

THE CHALLENGE

Тhe biggest challenge was to understand the variety of problems one hotel front-desk is facing and shape a proper solution for them. As software consultants and executioners of the digital transformation strategy, we embraced that challenge. 

Our first step was to drill down to the very core of the daily activities performed by each role involved in the property or hotel operations. Fortunately, our clients GoDo have long-standing relationships with properties of different size, setup, and needs, which helped us define various complex user stories and scenarios.

The second step was to define the architecture and the modules. We decided to go back to Travia, which was built as a monolith and already contained most of the concepts which were translated into software modules.

We decided to reuse and decouple these modules, thus giving them a separate lifeline in the form of microservices, such as:

  • Authorization 
  • Property (Core) 
  • Integration 
  • Notifications 
  • Pricing and invoicing 
  • Booking
  • Inventory
  • Tasks 
  • Guest Data 
  • Content

Breaking up the monolith meant that we encountered new problems: communication between microservices, transactions across them, action and effects, testing, monitoring, etc. This situation encouraged us to seek a solution with Kafka, E2E test, SC Gateway, Eureka, ElasticSearch and Kibana. 

The third step is related to the second challenge we have in this project - the integration and interoperability with external systems, a core requirement in the hospitality industry. This module is the one that ensures that Properly can communicate and work impeccably with third-party systems, such as OTAs (online travel agencies - Booking, Expedia, etc), channel managers, and niche products (booking management systems, rate management tool, guest management tool, cleaning app, door key system, tv system, etc.). Therefore, we created a separate microservice designed to handle the communication with all the APIs, with an action/effect pattern. 

 

The process

SPECIFICATION

  • Requirement gathering phase - meetings and workshops   
  • Initial system architecture – diagrams and modules
  • Specification by example (SBE) approach
  • User stories and scenarios – Behavior Driven Development (BDD)
  • Database design

DESIGN, DEVELOPMENT & TESTING

  • Backend
    • Microservices
    • Kafka 
    • Security with OAuth/JWT
    • REST API Backend in Spring Boot
    • Postgresql/MySql Database
    • Elasticsearch and Kibana
    • Integration with external APIs
  • Frontend
    • Angular NgRx
    • Material Design
    • Automated Tests
    • Whitelabeling

DEPLOYMENT

  • Continuous Integration / Continuous Deployment
  • TeamCity
  • Octopus Deploy
  • AWS infrastructure
    • RDS Database
    • Elasticsearch
    • EBS Application
    • S3 File Storage
    • S3 Frontend
THE RESULT

The current result is that we have a blueprint - a clearly devised microservice architecture. Now the goal is to develop a flexible, scalable and robust software with different modules, enabling each client to use a palette of different services and that interoperates with almost all the external services of the industry, making it unique among other PMS providers.

 

Interested in being part of this project? Apply for Full-Stack Java Developer here