Minazon
- Back-end
- PHP
- MySQL
- JavaScript
- Lua
Minazon is a full-stack storefront for virtual items built for a live Minecraft (Java Edition) server.
I built the entire system: an in-game storage tracker that maintains real-time inventory, a bridge that links the game to the website, the web app itself (accounts, search, favorites, cart, orders), and a command pipeline that turns web orders into Create-mod train schedules and delivers to in-game stations while feeding status back to the site. (Create is a Minecraft automation mod that adds mechanical systems and trains.)
How it works (user flow → trains)
-
Live inventory: My in-game tracker aggregates storage and pushes current counts. The site shows searchable, friendly item names and auto-expires stale numbers to avoid phantom stock.
-
Checkout to a station: Users add items to a cart and choose a drop-off station (mapped locations; some are depots).
-
Order → command queue: The site creates an order and writes a JSON command (order id, items, source depot, destination station) to a durable queue.
-
Bridge → Create trains: My bridge service polls the queue and compiles each command into a Create train schedule (route, cargo manifest, stops).
-
Delivery & tracking: As trains run the schedule, the bridge posts status updates (queued → dispatched → delivered). The website shows a per-order timeline.
What I built (scope & responsibilities)
-
In-game storage tracker: maintains item counts and exposes them for the site; keeps coordinates/metadata for stations and depots.
-
Game ↔ Web bridge: reliable, idempotent handoff using a command queue and a JSON schema; retries without double-dispatch.
-
Website & backend: accounts, favorites, cart, orders, order status history, popular/recent items, basic chat, online users.
-
Train scheduling: translation layer that programs Create mod trains from web orders, with feedback to the site.
Design choices that make it robust
-
Decoupled via queue: the site and the game can restart independently; commands persist, deliveries resume.
-
Append-only status: every order has a full audit trail; easy to debug/observe.
-
Data sanity: stale inventory auto-zeros if not refreshed; carts are deduped per user to keep quantity updates predictable.