Leases, maintenance and finance describe the same asset from three directions. The system has to hold all three without duplication.
Lease terms held in documents rather than in data
Maintenance requests tracked by email
No consolidated view of a portfolio across entities
Compliance certificates rediscovered at inspection time
Asset, unit and tenancy modelled once, consumed everywhere.
Lease events, renewals and rent review as scheduled domain events.
Request to completion with contractor access and cost capture.
Certificates and contracts versioned against the asset they cover.
Property runs on contracts that expire and certificates that must be current. Both are documents, and both are usually somebody's calendar reminder.
Gas safety, electrical certificates, insurance and licences all expire on their own schedule. A month's warning is the difference between renewing and being non-compliant.
Leases, certificates and correspondence filed into SharePoint by property and year, so the file a solicitor asks for is findable without opening Odoo.
Rent arrears chased on a defined ladder, with every reminder recorded - which is what you need when it goes further than a reminder.
Tenant data is the most sensitive thing in the database. Decide who may export it, and keep the record of who tried.
Every one of these is on the Odoo Apps Store and installs on its own. Nothing here requires the others, and the order is an opinion rather than a dependency. See the whole catalogue.