~/work/iwenest

IWeNest Platform

A booking, ordering and POS platform for iWE NEST sleep-box cafés (ZBOX). Guests book boxes and order food on the website or app, cashiers run sessions and sales, and managers track each branch.

Role
Full Stack Engineer · Freelance
Timeline
2026
Platforms
Web · iOS · Android
Apps
Website · Customer · POS · Manager
Web · home
Web · home
Customer · home
Customer · home
Customer · booking
Customer · booking
Customer · news
Customer · news
Customer · account
Customer · account

The problem

ZBOX branches needed a fast point-of-sale for front-desk staff that could run each branch on its own. Every session and sale still had to reach the main ZBOX system without tying the two systems tightly together.

What I built

  1. 01
    Customer websiteA Next.js site where guests pick a Cafe & Sleep combo, reserve a table, order drinks for delivery, rent monthly and read news, with QR ordering at the table and no app install needed.
  2. 02
    Cashier POS appCard lookup, package and box selection, starting, extending and ending sessions, product checkout and receipts.
  3. 03
    Customer appA member app for booking boxes, reservations, monthly packages, ordering food and delivery, plus a wallet, referrals, news and session history.
  4. 04
    Manager appA branch overview for managers, with revenue, staff and full access to POS features.
  5. 05
    Go backendA net/http router with auth, role and branch guards, and endpoints for catalog, sessions, checkout and reports.
  6. 06
    Sync boundaryA sync-event publisher that lets the main ZBOX system replay POS activity.
  7. 07
    Release & handoffApp Store and Google Play builds, custom notification sounds, tester accounts and user guides.

Architecture

Clients
WebsiteNext.js
Customer · POS · ManagerFlutter · GetX · GetConnect
API
zbox-pos-beGo · net/http
Guardsauth · role · branch
Data
PostgreSQLor seeded memory store
ZBOX sync targetevent replay

Hard parts

Loose coupling

The POS writes sync events instead of calling ZBOX directly, so a branch keeps selling while the upstream system is down.

Swappable storage

A repository interface supports a seeded in-memory store for local development and Postgres for branches, with no changes to business logic.

Stack

FlutterDartGetXGetConnectGonet/httpPostgreSQLNext.jsApp StoreGoogle Play