Gerard Llanas Logo
● Master's Thesis · Team of 3 · MERN

MERAKI

A full-stack marketplace. Many shops. One platform.

Meraki Marketplace is a multi-shop e-commerce platform built on MongoDB · Express · React · Node. Buyers browse and order across many sellers, sellers run their own storefront and dashboard inside the same app, and shipments stream live on a Mapbox map over WebSockets. Final master's project, three developers, six months.

Multi-shopMany vendors in one marketplace, each with their own storefront.
Real-timeSocket.IO chat & live shipment tracking on Mapbox.
AnalyticsEvent-based metrics — sales, views, conversion, per-product breakdown.
Heads up — product data was generated by an AI seeder for the demo. Don't mind the mountain photos on a t-shirt card; the engine doesn't care.

Many shops, one search bar.

Meraki is built around the idea that one platform can host dozens of independent storefronts. The shop directory lets buyers explore vendors by category and name — each card is a live, self-managed business.

Full-text searchShops & products, instant filter
Category filtersMulti-tag taxonomy on both axes
3 user rolesBuyer · Seller · Admin
JWT auth + GoogleToken-based sessions, OAuth fallback
Meraki shop directory — list of vendors with category filters

Every seller, their own shop.

Each vendor gets a full storefront inside the platform — hero slider, featured products, active offers, full catalogue with category filter on the side. Every block is toggleable from the seller dashboard, so vendors compose their own page without touching code.

  • Custom hero slider with per-shop images & copy
  • Featured products block — drag-to-pick from catalogue
  • Offers section auto-populated from discounted SKUs
  • Side-panel category filter on the product grid
  • Per-shop reviews & star rating aggregate
● Composable storefrontEach section is opt-in. Slider, featured, offers and grid all live independently — seller toggles, layout reflows.
Boutique Elegance shop page with hero slider and featured products

Full product page. Reviews. Related.

Product detail page ships with image gallery, description, live stock status, star rating with written reviews and a buy CTA wired straight into the cart. Below it, a related-products strip pulls from the same taxonomy to keep buyers in the funnel.

Reviews & ratingsPer-product, per-user, moderated
Stock stateReal-time availability badge
One-click addOptimistic cart updates
Related gridCategory-based recommendation
● Related productsPulled by shared categories. Cross-shop — buyers stay in the marketplace even if they leave the current vendor.
Product detail page with reviews and rating
Related products strip

Run a whole shop. From a side panel.

Sellers get a complete back-office: live sales analytics, product CRUD, order pipeline, shop appearance editor and a featured-products picker. No external tooling — everything from opening the shop to publishing a slider hero lives inside Meraki.

  • Sales / orders / views over time, daily breakdown
  • Product CRUD with image upload + categories
  • Order pipeline — paid, shipped, delivered
  • Appearance editor — slider, featured, offers, copy
  • Featured-product picker, drag-to-promote
01 · Analytics dashboardSeller analytics dashboard with revenue and orders charts
02 · Shop editorShop editor form — name, description, categories and social links

Watch the courier move.

Once an order ships, buyers open the order page and see a live Mapbox view of the courier. A Socket.IO channel pipes a fresh GPS coordinate every ~10 seconds straight from the delivery client into the browser — no polling, no refresh.

Socket.IOBidirectional WS channel
Mapbox GLLive marker + ETA pill
Courier ping~10s GPS heartbeat
Live chatSame socket layer — buyer ↔ shop
● One socket, many channelsThe same WS infrastructure powers buyer-seller chat and shipment tracking — single connection, rooms per concern.
Live shipment tracking on a Mapbox map showing courier route

The board for whoever runs the marketplace.

Platform admins land on a global dashboard — revenue, orders, users, sellers, products and a live recent-orders feed. The same event pipeline that powers seller analytics aggregates upwards into platform-wide KPIs.

Global revenueAll-time + today snapshot
Order funnelRecent · pending · completed
User growthNew today · this week · sellers vs buyers
Catalog scaleShops · products · featured count
● Cron-backed reportsScheduled tasks pre-aggregate analytics every night so the dashboard stays instant even as data grows.
Platform admin dashboard with global revenue, orders and users metrics

MERN, split clean.

Two repos — React frontend, Express/Node API — communicating over REST and a shared Socket.IO channel. MongoDB for storage, JWT for auth (Google OAuth as fallback), Mapbox for geospatial UI, cron workers for nightly aggregation.

React
Node.js
Express
MongoDB
Mongoose
Socket.IO
Mapbox GL
JWT
Google OAuth
Cron
REST
Cloudinary

Frontend

React SPA — routes for buyers, sellers and admins; shared state via context; optimistic UI on cart and chat. Mapbox GL for the live tracker.

Backend

Express API exposing auth, shops, products, orders, reviews, analytics and notifications. Socket.IO server bound to the same process for chat & courier pings.

Data

MongoDB document model — shops own products, products own reviews, orders link users to shops. Event collections feed seller and admin dashboards.

● Status — Master's project · Team of 3 · Not currently hosted

Built to ship.

Meraki was the capstone of my master's — designed and shipped with two teammates over six months. We split the surface area (frontend, backend, dashboards, real-time), then converged on the integration. The codebase is shared and currently offline, but the patterns — multi-tenant marketplace, event analytics, sockets for live data — still hold up.

Multi-tenant by design

Every model lives under a shop scope — sellers never leak into each other's data.

Event-driven analytics

Views, carts, orders — captured as events, aggregated by cron into snapshot collections for fast dashboards.

Sockets done right

One Socket.IO server, rooms per shop and per courier — chat and shipment tracking share the same pipe.