paint-brush
API Solution for Prop-tech Companiesby@dmitrymikhaylov
5,186 reads
5,186 reads

API Solution for Prop-tech Companies

by Dmitry MikhaylovAugust 22nd, 2023
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

The year 2020 marked the start of digital transformation in business, offering technological solutions for managing assets that might otherwise have become unprofitable. Let's take a look at how prop-tech startups are starting a new wave of transformations in London and the challenges they may face.
featured image - API Solution for Prop-tech Companies
Dmitry Mikhaylov HackerNoon profile picture

The year 2020 marked the start of digital transformation in business, offering technological solutions for managing assets that might otherwise have become unprofitable.


Let's take a look at how prop-tech startups are starting a new wave of transformations in London and the challenges they may face.


Why is London the perfect example? Because 15 million residents are squeezed into the conditions of one of the most developed property management markets, one of the oldest public transport systems, and a legal system that combines both modern and conservative approaches to problem-solving.


Besides, many tech companies from the Old and New Worlds have their HQs based there, driving the transformation forward.


There are three areas that are sensitive to volatility in demand and, at the same time, are receptive to new technologies:

  • management of parking spaces
  • property rental management
  • management of workplaces in offices


Parking is the scourge of all world capitals. And with the rise of online delivery, the already congested streets are now also home to countless couriers. Transport for London (TfL) has developed a public transport accessibility level (PTAL) tool to calculate the accessibility of locations throughout Greater London. PTAL is used in planning neighborhood developments and helps to understand public transport accessibility and allows developers to reduce the number of private vehicles in accessible locations.


In addition, the city administration makes efforts to regulate traffic in the city center - paid parking, paid entry to specific areas.


Commercial parking spaces - in open, above- or underground parking lots, shopping, and business centers are becoming more and more in demand as the economy emerges from the consequences of the pandemic and lockdowns. Parking operators (for example, NCP) offer their applications for booking, others - yourparkingspace - are set up as marketplaces and host spaces owned by others.



Flexible rental. The market, radically reshaped by Airbnb and Booking, has become a driver of the revival of entire neighborhoods in many cities around the world, changing their face. In the past 15 years, in addition to rentals for a few days, demands for student housing and co-living have emerged. Companies like Lavanda provide a platform (PMS) for landlords or property management, booking companies to list, manage, and book accommodations in a variety of options: for tourists, students, multiple families simultaneously.


Le Corbusier, who called the house a "machine for living," proposed constructing "Unité d'Habitation"; Lavanda, however, can turn any suitable property into such a "machine.”



The specificity of the UK rental market is that agencies, rather than property owners, handle it - they are the main users of products like Lavanda PMS. Systematizing data allows for efficient price management and property preservation.


Managing office workspaces - just as Airbnb turned the rental industry upside down, WeWork changed our perception of how corporate offices or co-working spaces should be set up.


Working in the Zoom style has brought time management to the forefront and made Google Calendar one of the main work tools. Services like zonifero or iOFFICE allow modeling workspace experience, and moreover, developing their products as SAAS solutions, they scale and customize perfectly for specific conditions.


From these three examples, the correctness of the thesis that if you want to understand a problem, it needs to be monetized, can be seen.


However, despite the simplicity of the "uberize property" concept - renting out a vacant parking space at home or renting a meeting room during non-peak hours (early in the morning or late in the evening) to non-resident freelancers - this task has difficult solutions.


The first issue is the lack of legal status. Although platform-based employment for people is more or less resolved now (which took 5 years and countries like Spain or Germany are already starting to adopt anti-platform laws), legalizing C2C or C2B rental of individual spaces in residential property is still difficult, both from a tax payment point of view and in terms of ensuring safety.


The second issue is the lack of a unified technical solution. As mentioned earlier, the rental scheme for properties is as follows:


Network hotels and parking lots are organized in a similar way. There are owners, operators or agencies, platforms, and clients. Many participants result in many applications.


Both users and clients benefit from access to as many others as possible. However, the variety of solutions hinders user convenience. Different database architectures, different payment and tariff systems, and different server solutions. Finally, applications for different systems such as iOS/Android - they all require support and timely updates.


When talking about parking or office operator applications where deals are carried out around a fixed set of spots, the loyalty to a specific service is more important, since the parking space is either free or not - if there is a parking lot in the area at all. Typical companies with typical locations.


However, if we imagine a need to combine services with private offers, the availability of which depends on a greater number of factors, such as the owner's desire or holidays, bonus points alone will not suffice.


How can a user broadcast information to multiple services? There are several options:

  • create accounts in each platform and manually enter their offers, hoping to catch a client somewhere
  • adding an aggregator to this option, we can increase our chances of making a deal, provided that this service itself has a loyal customer base
  • finally, you can use an integrator that eliminates the need to constantly maintain the functionality of your accounts on different platforms - that's the integrator's job


In the last two cases, the main task is to exchange data between all platforms - here, APIs come to the rescue, allowing reaching the desired result using relatively simple means, regardless of the internal structure of different applications.


Integration services - for example, Zapier or Postman - have ready-made solutions for hundreds of popular platforms; a user needs to have accounts and generate API keys for a specific integration.


Conceptually, the technical solution might look like this:

//API key for the integrated application (in our case - a Notion database) and the ID of the used properties

NOTION_DATABASE_ID = 2pp844ca6cf97f91aca1a808fb7fc876
APP_API_KEY = secret_LGe25Yt9OaCQbZqLs4c50ZNUISBUacjJ8u7mn4

NOTION_CUSTOM = GWYK
NOTION_TASK = title
NOTION_TAGS = oyLf
//integration metadata for the npm dispatcher, helping it identify the connection and work with its dependencies
{
  "dependencies": {
    "@notionhq/client": "^2.2.9",
    "dotenv": "^16.3.1",
    "ejs": "^3.1.9",
    "express": "^4.18.2"
  },
  "scripts": {
    "start": "node server.js",
		"devStart": "nodemon server.js"
  },
  "name": "js",
  "version": "1.0.0",
  "main": "server.js",
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": "",
  "devDependencies": {
    "nodemon": "^3.0.1"
  }
}

//example of a request to an integrated application to retrieve the content of its cards

const { Client } =require('@notionhq/client')
const notion = new Client({auth: process.env.APP_API_KEY})

async function getTags(){
const database = await notion.databases.retrieve({database_id: process.env.NOTION_DATABASE_ID})
  return notionPropertiesById(database.properties)[process.env.NOTION_TAGS].multi_select.options.map(options=>{
    return{id: options.id,name:options.name}
  })
}

function notionPropertiesById(properties){
return Object.values(properties).reduce((obj,property)=>
{
const {id, ...rest}=property
return{...obj,[id]: rest}
},{})
}

function createSuggestion({title, custom, tags}){
    notion.pages.create({
        parent: {
            database_id: process.env.NOTION_DATABASE_ID
        },
        properties:{
            [process.env.NOTION_TASK]:{
                title: [
                    {
                        type: 'text',
                        text:{
                            content: title
                        }
                    }
                ]
            },
            [process.env.NOTION_CUSTOM]:{
                checkbox: custom
            },
            [process.env.NOTION_TAGS]:{
                multi_select: tags.map(tag=>{
                    return{id:tag.id}
                })
            }
        }
    })
}

module.exports = {
createSuggestion,
getTags,
}
//example of a server processing requests

require("dotenv").config()
const express = require("express")

const {getTags, createSuggestion} = require('./notion')
let tags = []
getTags().then(data=>{
    tags = data
})
setInterval(async () => {
    tags = await getTags()
}, 1000*60*60);

const app=express()
app.set('views','./views')
app.set('view engine', 'ejs')
app.use(express.urlencoded({extended: true}))
app.get('/',(req,res)=>{
    res.render('index', { tags })
})

app.post('/create-suggestion', async (req,res)=>{
    const {title, custom, tagIds=[]} = req.body
    await createSuggestion({
        title,
        custom: custom != null,
        tags: (Array.isArray(tagIds) ? tagIds : [tagIds]).map(tagId =>{
            return{id: tagId}
        })
    })
    res.redirect("/")
})

app.listen(process.env.PORT)


As a result, we obtain a two-way data exchange between the application and the service integrator.

Market-leading products develop such integrative API solutions independently, understanding the user's interest in the broadest possible representation of their offers, especially those concerning their property.


After resolving the legal issues, a growing number of property owners will be able to satisfy an increasing number of users using platform-based or integration solutions based on API protocols.