كل التطبيقات

Houseshare

A landlord platform for shared households

Room-by-room letting, a rent ledger, and a portal for the people who live there.

A house let room by room to people who did not choose each other. One API serves two apps: a dense back office where the landlord does the bookkeeping, and a phone-first portal where a resident checks what they owe and whether anybody has looked at the boiler yet. Money that lands on the house is split before anyone is asked to pay it, and every refusal is a test.

The Houseshare sign-in: a blue panel carrying the name on the left, the email and password form on the right
The front door. Two apps sit behind it — the landlord’s back office and the tenant portal — and the same account opens the right one.
The Houseshare sign-in on a phone, the form filling the screen under the name
On a phone, which is where a tenant reports a broken boiler from.

مبنيّ لأشخاص بأسمائهم، لا لمسمّيات وظيفية.

قبل بناء أي شيء، دُوّن من سيستخدمه بأسمائهم. يحصل كل منهم على حساب حقيقي، وتُجرَّب كل شاشة بالنقر بصفة كل واحد منهم قبل الإصدار.

  • Amina

    Landlord

    Checks arrears before anything else. Two houses, and she knows which room is empty.

  • Bilal

    Landlord

    A second landlord on the same instance, so every ownership rule has someone to refuse.

  • Chidi

    Tenant

    Reports the boiler and wants to know a human saw it. Disputes the arithmetic when he pays late.

  • Dara

    Tenant

    Moved in halfway through a billing period, which is why her share of every bill is the interesting one.

مرحلة واحدة في كل مرة.

هذه هي الخطة التي بُني منها التطبيق. كل مرحلة مكتوبة بكلمات بسيطة، مع الفحص الذي يثبت أنها تعمل.

عدد المراحل: 13، 13 منجزة

  1. 1

    The portfolio

    منجزة

    A landlord adds a house and the rooms in it, and sees only their own.

    كيف نتحقق منه

    1. Given 'amina' has no properties
    2. When 'amina' adds a house with three rooms
    3. Then the house appears on her portfolio with three vacant rooms
    4. When 'amina' adds a fourth room to it later
    5. Then the house is let by four rooms
    6. And 'bilal' cannot see it on his portfolio
    7. And 'bilal' is refused when he reaches for it directly
  2. 2

    A room is let

    منجزة

    The landlord creates a tenancy for a room, and the room stops being empty.

    كيف نتحقق منه

    1. Given 'amina' has a house with a vacant room
    2. When 'amina' agrees a tenancy with 'chidi' for that room and activates it
    3. Then the room shows as occupied by 'chidi'
    4. And the tenancy carries the agreed rent, deposit and notice period
    5. And a second tenancy for the same room cannot be activated while one is active
  3. 3

    The rent ledger

    منجزة

    Charges accrue, payments settle them oldest-first, and arrears fall out of the arithmetic.

    كيف نتحقق منه

    1. Given 'chidi' has an active tenancy with two unpaid monthly charges
    2. When 'amina' records a payment covering one month
    3. Then the older charge is settled and the newer one is still outstanding
    4. And 'chidi' shows as one month in arrears rather than two half-months
    5. When 'amina' records a payment larger than what is left owed
    6. Then the extra money is held as credit against the tenancy
  4. 4

    The tenant portal

    منجزة

    A second frontend where a tenant sees their room, their tenancy and what they owe — and nothing else.

    كيف نتحقق منه

    1. Given 'chidi' and 'dara' hold tenancies on rooms in the same house
    2. When 'chidi' opens the portal
    3. Then he sees his own room, rent and balance
    4. And he can read the month behind what he is told he owes
    5. And he cannot see what 'dara' pays for her room
    6. And he is refused when he reaches for the landlord's arrears view directly
  5. 5

    The monthly rent run

    منجزة

    Charges raise themselves on the due day, reminders go out by queue, and nobody chases by hand.

    كيف نتحقق منه

    1. Given 'chidi' has an active tenancy whose rent is due today
    2. When the monthly rent run executes
    3. Then a charge for this month exists against his tenancy
    4. And running it a second time does not create a second charge
    5. And the arrears sweep enqueues a reminder once the charge is overdue
    6. And 'chidi' receives that reminder by email
  6. 6

    Something is broken

    منجزة

    A tenant reports a fault and watches the landlord's triage land on their screen without reloading.

    كيف نتحقق منه

    1. Given 'chidi' has an active tenancy in a house owned by 'amina'
    2. When 'chidi' reports a broken boiler as urgent
    3. Then it appears on the triage queue of 'amina'
    4. And it is invisible to 'bilal'
    5. And when 'amina' marks it seen, the open screen of 'chidi' updates without a reload
  7. 7

    Splitting the bills

    منجزة

    One energy bill becomes a fair share on each resident's statement, with the arithmetic shown.

    كيف نتحقق منه

    1. Given a house owned by 'amina' has two occupied rooms and one empty room
    2. And 'dara' moved in halfway through the billing period
    3. When 'amina' enters a quarterly energy bill split per head
    4. Then 'chidi' is charged a full share and 'dara' a part share for her days
    5. And the empty room's share is carried by 'amina' rather than the residents
    6. And 'chidi' can see how the split was calculated without seeing what 'dara' pays in rent
  8. 8

    The deposit and the move-in check

    منجزة

    Take the money, record the condition, and get both signatures while everybody is still friendly.

    كيف نتحقق منه

    1. Given 'amina' has activated a tenancy for 'chidi' and recorded his deposit
    2. When 'amina' completes a move-in inventory check for the room
    3. Then the tenancy shows the check as awaiting the signature of 'chidi'
    4. And once 'chidi' signs it from the portal, neither of them can edit it
    5. And the deposit is never applied to an outstanding rent charge
  9. 9

    The move-out

    منجزة

    Notice, check, deductions, response, settlement — a durable process that survives the weeks it takes.

    كيف نتحقق منه

    1. Given 'chidi' has an active tenancy with a signed move-in check
    2. When 'chidi' gives notice and 'amina' completes the move-out check
    3. And 'amina' proposes a deduction naming the item it relates to
    4. Then 'chidi' sees the proposed deduction and the deadline to respond
    5. And when he accepts, the deposit is settled and the tenancy ends
    6. And the room returns to vacant while its ledger history stays readable
  10. 10

    Nothing expires quietly

    منجزة

    Certificates and contracts with expiry dates, and something watching them so the landlord does not have to.

    كيف نتحقق منه

    1. Given 'amina' has uploaded a gas certificate expiring in thirty days
    2. When the nightly expiry sweep runs
    3. Then 'amina' receives a reminder naming the property and the date
    4. And 'chidi' can read that certificate for the house he lives in
    5. And 'chidi' cannot read the licence documents of 'amina'
    6. And uploading a newer certificate supersedes it without deleting the old one
  11. 11

    The house assistant

    منجزة

    A landlord asks a question in words and gets an answer from their own data, under their own permissions.

    كيف نتحقق منه

    1. Given 'amina' has two houses with one room in arrears
    2. When 'amina' asks the assistant who is behind on rent
    3. Then the answer names that tenancy and the amount from the ledger
    4. And it cites the charges the figure came from
    5. And the same question asked by 'bilal' returns nothing about the houses of 'amina'
  12. 12

    Three languages, one right-to-left

    منجزة

    English, German and Arabic across both apps — and the RTL pass that finds the real layout bugs.

    كيف نتحقق منه

    1. Given 'chidi' has set his language to Arabic
    2. When 'chidi' opens his statement in the portal
    3. Then the layout is mirrored and the money column stays aligned
    4. And the arrears reminder he receives by email is in Arabic
    5. And no screen in either app renders an untranslated string
  13. 13

    Tools and versions

    منجزة

    The portfolio as MCP tools an outside agent can drive, and a function contract that changes safely.

    كيف نتحقق منه

    1. Given an outside client is connected over MCP as 'amina'
    2. When it asks for the vacant rooms in the portfolio of 'amina'
    3. Then it receives them from the same function the app calls
    4. And it is refused the portfolio of 'bilal'
    5. And changing a versioned contract is reported as breaking before it ships

نشاطك التجاري، على تطبيقه الخاص.

Pikku Studio مجاني ويعمل على حاسوبك. ابدأ من الجداول والمجلدات والمحادثات التي لديك أصلًا.