Use case

An organization called Test Org comes to a property management company. The property management investigates the property and determines a rate and sends the organization a quotation. Upon agreement, the property management Co sends a payment link for the organization to make the payment. The Organization makes the payment and a payment record is saved in the Database

Data Store

- Organization/Company record is saved in a postgres db(for internal datastore) and Hubspot for business to use.

Key points to consider

- Since data is supposed to reside in two places namely postgresql database and Hubspot CRM.
  Data consistency is key and hence the synchronisation of data is a big part of the design.
  Currently, to keep things simple, the process of creating the record is done sequentially.
  However, the plan is to use a event based architecture to decouple the logic.

Task checklist Link

-task_checklist.md

Quick Set up

  • pip install -r requirements.txt
  • create .env file and add the keys for env-example
  • alembic upgrade head (to migrate)
  • uvicorn main:app –reload (to run server)

GitHub

View Github