SO.Sherlyn Olalo, home
All projects

E-commerce

Cranvas

A multi-role marketplace where admins, sellers, customers and delivery agents each get their own view of the same storefront.

The Cranvas marketplace showing the customer-facing product listings alongside the seller dashboard entry point.

Year

2023

Role

Full-stack Developer

Client

School project

Stack

React, Spring Boot, MySQL

Coursework project, no public deployment.

01

The problem

Most shop demos pretend there's only one seller and one buyer. Real marketplaces aren't like that. I wanted to build something closer to how it actually works: many sellers, many roles, one storefront.

02

What I built

A web app with four logins, each with its own dashboard and rules. Sellers list products and track orders, customers shop and review, admins keep the place clean, and delivery agents close the loop. One app, four perspectives.

What four roles needed

  • Four roles, one schema

    A single user table with a role column drives every dashboard, so adding a permission never means forking the data model.

  • Order state as the source of truth

    One order record moves through fixed stages, placed, packed, out for delivery, received, and every role's dashboard just reads a different slice of that same state.

  • Role checks on the backend, not just the UI

    Spring Boot checks role on every request, so a customer can't reach the seller dashboard just by guessing a URL.

React runs the frontend, Spring Boot handles the backend and role logic, and MySQL stores products, orders and reviews.

03

What I learned

The fun part wasn't the buttons or the forms. It was deciding where each role's world ends and the next begins. I'd handle images differently next time. And honestly, the small setup work (ports, configs, logins) ate more hours than the actual features. Nobody warns you about that.