Skip to the content
Yaaza Ait Bah
All work

Digitalgardn

A marketplace that connects freelancers and clients: a Laravel REST API and a React interface, built on my own. Freelancers publish services, clients order and pay from a wallet, the two talk in real time, and an administration area runs the platform.

Digitalgardn — no screenshot yet

Built with

  • Laravel
  • PHP
  • MySQL
  • Laravel Sanctum
  • Laravel Reverb
  • Pusher
  • React
  • Vite
  • Redux Toolkit
  • TanStack Query
  • React Hook Form
  • Zod
  • Axios
  • Tailwind CSS
  • shadcn/ui
  • WebSocket

Role

Sole developer, backend and frontend, from the first line to the last.

The problem

A marketplace is not one application but several that must agree: a catalogue, an order with a state machine, money held in a wallet, a conversation, and an administration area over all of it. Each one can be built alone; the difficulty is that an order changing state has to move money, open a conversation and reach two browsers at once.

Approach

Status transitions are validated against the caller's role rather than trusted from the client, and each one raises an event that the wallet, the conversation and both browsers listen to — Laravel Reverb over private channels, with the frontend cache invalidated by the same event. The obvious alternative, polling and letting the client decide what a seller may do, was rejected: it puts the rule in the place least able to enforce it.

Outcome

The platform covers the whole path: registration, a public catalogue, an order, payment from the wallet, a conversation, a review, and an administration area with statistics and moderation. It is published under the MIT licence and the code is public.