01 / Overview
Context and objective
Small businesses often need accessible promotional support, while emerging creators need a clear way to package and present their services. Ruang Usaha Kita explores a two-sided marketplace designed around those distinct needs.
Design and build a coherent marketplace foundation where business owners can discover services and creators can manage their offers without the two roles becoming tangled in one generic experience.
Responsibilities
- Mapped role-specific journeys for business owners and creators.
- Built responsive catalogue, service detail, cart, and checkout flows.
- Integrated Supabase authentication and relational application data.
- Debugged state and data-flow issues across client and server boundaries.
Constraints
- Academic scope and an evolving product definition.
- Two user roles with different permissions and interface needs.
- No production usage data yet; decisions are validated through flow testing.
02 / Process
A structured route through the problem
Separate the journeys
I began with the decisions each role needs to make, then structured navigation and screens around those moments instead of mirroring the database model in the UI.
Build the transaction spine
The catalogue, service details, cart, and checkout were treated as one connected system so pricing, selected services, and ownership stayed consistent across steps.
Tighten the data boundary
Authentication and Row Level Security rules were considered alongside UI states, making authorization a product behavior rather than a late infrastructure task.
03 / Product
Key features
- 01Role-based onboarding and workspaces
- 02Searchable digital-service catalogue
- 03Cart and structured checkout journey
- 04Supabase Auth session handling
- 05Row Level Security for scoped data access
Interface studies
Visualizing the core flows
04 / Engineering
Decisions with consequences
Role-aware access
Authorization is enforced at the data layer with RLS, while the interface exposes only the actions relevant to the active role. This keeps the experience clearer without treating hidden UI as security.
Explicit checkout state
Cart state and order creation are handled as separate stages. That makes intermediate states visible and easier to debug when a request or session fails.
Challenge / lesson
The hardest part was keeping user role, session state, and related records aligned. It reinforced the value of tracing data from interface action to database policy and back, instead of debugging each layer in isolation.
05 / Outcome
What exists today
The project currently provides the core role-based marketplace flows and a working Supabase-backed foundation. It remains in development; usability refinement and broader end-to-end validation are the next priorities.