Skip to content
Projects

Sanad · Real-estate investment platform

The API and admin dashboard I built for a Saudi real-estate investment platform: verified investors, a wallet, investments and returns paid on a schedule.

Overview

Sanad is a real-estate investment platform in Saudi Arabia. Investors verify their identity through Absher, top up a wallet, buy units in income-generating properties and receive their returns in the same wallet. As a part-time full-stack engineer, I built its API and its admin dashboard.

The problem

The platform was new, and real money had to move through it safely.

  • Money that always adds up. Every balance had to be explainable, movement by movement.
  • No half-finished investments. Units, money and fees had to change together, or not at all.
  • Returns for every investor. Paying each investor by hand would be slow and error-prone.
  • Control for the team. Deposits, withdrawals and bank accounts needed a person to approve them.

The solution

Each risk has one safeguard in the platform, and I built each of them.

What I did

  • Built the API from its first commit, on Domain-Driven Design, split into more than ten domains.
  • Built the parts where money moves: the wallet ledger, the investment flow and the returns.
  • Built sign-in with one-time codes, the approvals, and the connections to Absher and payment gateways.
  • Built the admin dashboard on my own.
  • Helped build the investor app's home and account pages, and guided the engineer who built the rest.
  • Wrote tests for the money paths.

What it offers

  • Shares in income propertiesInvestors buy units in income-generating properties, from the website or the app.
  • Verified investorsEvery investor verifies their identity through Absher before investing.
  • A wallet for every investorTop up from a bank account, invest from the balance and withdraw back.
  • Returns on a scheduleReturns are paid once, monthly or yearly, straight into the wallet.
  • Confirmed by a codeSigning in and every investment are confirmed by SMS.
  • Arabic and EnglishThe apps, the messages and every wallet movement read in either language.

System design

Three front ends share one API, and the money lives in two domains at its centre.

The wallet ledger

Each movement points to the one before it, so a balance is always the end of a chain.

The application never writes a balance: it only adds movements, and the database keeps every wallet in step with them.

Investing in one step

Every check runs before anything changes, and every change happens together.

Returns for every investor

The plan is set once; paying a period is one confirmed action that pays every investor.