Skip to Content
Custom Engineering

Custom Engineering / Nimex Solutions

Interactive Office Management

A technology park has to see, floor by floor, which offices are vacant, occupied, reserved, expiring or under maintenance, and run move-ins and renewals without a separate property system. Nimex built a floor-plan application inside Odoo where every unit’s status is derived from its lease contract.

The problem

A typed status is out of date the day a contract changes.

A campus rents offices, open-plan desks, incubator rooms and workshops across several buildings. Managers kept the picture in drawings, spreadsheets and a legacy tool: which unit is free, which lease ends next quarter, which room is closed for works. Every move-in or renewal meant updating three places.

Standard Odoo has contacts and contracts in general terms, but no floor plan, no unit geometry and no notion of a unit’s status coming from its lease.

What we engineered

A full-page application, from the campus down to the lease.

  • Floor plans to scale

    Each floor drawn in metres with core and corridor, an optional architectural drawing as a background with adjustable opacity, units as tiles coloured by status, search, status filters, hover card, minimap, zoom and pan.

  • Drawing and editing

    Rectangles, circles and polygons with snapping guides; move, resize, duplicate, delete and save. Area comes from the geometry unless entered manually.

  • Contracts and tenants

    Tenants are contacts with short name, sectors, type and staff counts. Contracts carry start and end, rate per m², area and monthly rent, termination and no-renew flags and a renewal history.

  • Actions with guard rails

    New tenant with contract, renew by years and a percentage, vacate today, at month end or at contract end, maintenance flag, notes, documents and undo. Overlaps and contracts on units under maintenance are refused.

  • Overview

    Occupancy by m² and by unit, rented area, active tenants, upcoming expiries, sector split, newest tenants and recently vacated units; Tenants and Contracts screens drill in.

  • Fast and restorable

    One request loads the dataset, every change returns a fresh payload to the screen, and each view has its own URL. A migration script moved the legacy plans from pixels to metres.

How it works

From an empty floor to a renewed lease.

  1. Set up the campus

    Buildings, floors with width, depth, core and corridor, tenant sectors, and the expiry threshold: 60, 90 or 120 days.

  2. Draw the floor

    In edit mode the manager uploads the architectural drawing, draws each unit as a rectangle, circle or polygon and saves; a 6 × 4 m office becomes a 24.0 m² unit.

  3. Add a tenant with a contract

    Tenant, start and end dates and the rate per m²; monthly rent = area × rate. The contract is refused if it overlaps another one or the unit is under maintenance.

  4. Let the status follow

    Future start: Reserved. Ending within the threshold: Expiring. Otherwise Occupied. No contract: Vacant. Maintenance flag: Under maintenance.

  5. Renew

    Renew by a number of years and a percentage: the end date moves, the rate is increased, a renewal row records old and new values, and undo restores the previous state.

  6. Vacate

    Today (the contract ends yesterday), at month end, or at contract end, which marks the lease “will not be renewed” and leaves the unit vacant when it ends.

  7. Read the overview

    Occupancy, rented area, active tenants and upcoming expiries across the campus, then drill into tenants and contracts.

Integration points

One model, from the campus to the tenant.

Chat with us