Edraya Corporation · private build guide
Not a tutorial app that gets thrown away — the actual system Edraya will use to manage two rental houses. You'll design it, build it, publish it, and then keep it running. Seven phases. Roughly a month at ten to fifteen hours a week.
This project is private. Edraya is separate from SJ Innovation. Don't post about it, don't put it in SJ channels or systems, and don't share this page or the app with anyone outside Shahed, Shahera and you.
Start with Phase 0. Read it before you touch anything.
Edraya Corporation owns two houses. One is rented as a whole house. The other is split into separate units with separate tenants. Right now everything is tracked by hand.
Your app replaces that. It needs to hold the properties and their units, the tenants and their leases, the monthly invoices, the payments that come in, and the money that goes out on each house. Only three people ever log in: Shahed, Shahera and you. Tenants never log in.
You will build the whole thing with made-up data — invented tenants, invented rents. Real information goes in only when Shahed says the app is ready for it. That means you can break things freely, which is the point.
You'll go back and forth between two tools all month. They do different jobs, and mixing them up is the most common way to waste an afternoon.
| Tool | Use it to | Don't use it to |
|---|---|---|
| Claude | Think, plan, write the prompt, understand an error, draft notes and updates | Build the app. Claude doesn't touch your Lovable project. |
| Lovable | Build, change and publish the actual app. It writes the code and hosts the result. | Work out what to build. Turning up with a vague idea gets a vague app. |
The loop is always the same: decide what you want → ask Claude to turn it into a clear Lovable prompt → paste it into Lovable → open the preview and check it actually works → fix one thing at a time. Then repeat.
Before you build anything, get your accounts working and spend an hour clicking around Lovable with something throwaway. Nothing you make today has to survive.
| Thing | Where |
|---|---|
Claude | Your own account. This is your thinking partner. |
Lovable | The SJ Finance workspace. Shahed will add you. Your project lives there. |
The app | Will publish to edraya.sjinnovation.us in Phase 5. |
This guide | sariyah.sjinnovation.us — bookmark it. |
Make a scratch project in Lovable first — anything, a page about your favourite food. Send it five messages. Watch what happens when you ask for two changes at once versus one. That hour will save you a week.
The foundation. A property is a house. A unit is a rentable space inside it. A whole-house rental is just a property with exactly one unit — that sounds fussy now, but it's what lets both Edraya houses work in the same app.
Three prompts, in order. Send one, check the preview, then send the next. Don't run ahead.
Build an internal admin web app called "Edraya Manager" for a small property company. Only signed-in admins use it. There is no public side and no tenant-facing side. Build only this, nothing more: - Email and password login using Supabase auth. No public sign-up — accounts are created by an admin. - After login, a sidebar layout showing the app name "Edraya Manager" with one nav item: Properties. - A Properties page listing properties in a table with columns: name, address, number of units. If there are none, the empty state says "No properties yet." - An "Add property" button that opens a form with: name, street address, city, state, ZIP, notes. - Store properties in Supabase. Style: calm and clean, lots of white space, deep green and warm brass accents, plain readable type. Do not add any feature I have not asked for.
Now add units. - A unit belongs to exactly one property. Fields: label (for example "Unit A" or "Whole house"), bedrooms, bathrooms, notes. - Clicking a row on the Properties page opens a property detail page showing that property's information and a table of its units. - Put an "Add unit" button on that detail page. - The Properties list should show a live count of units per property. Do not add tenants or leases yet.
Add editing and deleting for both properties and units. - Edit opens the same form, pre-filled. - Delete asks me to confirm first. - Deleting a property that still has units should be refused, with a clear message explaining why. Then add two example properties so I can see it working: 1. "Maple Street House" — one unit labelled "Whole house", 3 bed, 2 bath. 2. "Oak Avenue Duplex" — two units, "Unit A" (2 bed, 1 bath) and "Unit B" (2 bed, 1 bath). Label these clearly as example data.
A tenant is a person. A lease is the agreement putting that person in a unit for a rent, between two dates. Keep them separate — the same person can have a new lease later, and you don't want to retype them.
Here's the start of the prompt. You write the rest. Before you send it, ask Claude: "what am I missing from this prompt?" — then decide for yourself whether it's right.
Add tenants and leases to Edraya Manager. - A tenant has: full name, email, phone, notes. - A lease connects ONE tenant to ONE unit, and has: monthly rent, start date, end date (may be blank for ongoing), and status (active or ended). - A unit can only have one active lease at a time. If I try to add a second, refuse it and explain why. [ Your turn. Add instructions for: - where tenants are listed and how I add one - what the property detail page shows now that units have tenants - what a unit with no tenant looks like - two example tenants on the example properties ]
No prompts from here on. You get requirements and a definition of done. Writing the prompt is now your job — that's the skill this whole month is really teaching.
An invoice is a bill for one lease for one month. It is not a single rent number: it's a list of lines that add up.
rent, utility, late_fee, charge, credit.draft, sent, paid, overdue.Money in, money out. This is the phase that makes the app worth using instead of a spreadsheet.
paid on its own when the balance reaches zero.overdue without anyone clicking anything.Building it is half the job. Putting it somewhere real, on a proper address, with real accounts — that's the other half, and most people never learn it.
.lovable.app address straight away.edraya.sjinnovation.us.Before Shahed puts real tenant data in, go through the app and delete every example property, tenant, lease and invoice. Real and fake data must never sit side by side — that's how a made-up rent ends up on a real invoice.
edraya.sjinnovation.us loads the app over httpsAn app nobody maintains rots. This phase is how you own it properly.
Once real data is in there, you can't experiment freely any more. Small changes to how something looks are fine. Anything that touches the data — new fields, changed rules, renamed things — gets discussed with Shahed first, and a backup taken before you start.
Your code lives in the shahedsj/edraya repository on GitHub. Lovable saves there automatically. You don't need to run any commands, but it's worth opening once a month to see the history of what you changed.
This is the shape of the data. Get it right early — changing it after real invoices exist is genuinely painful. If a prompt you write would break one of these rules, the prompt is wrong.
| Table | Holds | Connects to |
|---|---|---|
properties | A house — name, address, notes | has many units, expenses |
units | A rentable space — label, bedrooms, bathrooms | belongs to a property |
tenants | A person — name, email, phone | has many leases |
leases | Rent, start date, end date, status | one tenant + one unit |
invoices | Month, issue date, due date, status | belongs to a lease |
invoice_lines | Kind, description, amount in cents | belongs to an invoice |
payments | Date paid, amount, method | belongs to an invoice |
expenses | Date, category, amount, vendor | belongs to a property |
Two rules that never bend. A whole-house rental is still a property with one unit — never attach a lease straight to a property. And money is stored in whole cents as a round number, never as 1250.50, because decimals drift and invoices stop adding up.
tenants table holds one row per tenant.Two honest attempts, then ask. Come with what you tried and what happened — that turns a long conversation into a two-minute one, and it's a habit worth more than anything else on this page.