Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ItsJhonAlex/Ecommerce/llms.txt

Use this file to discover all available pages before exploring further.

Avanzar In Time Shop is a production-ready, self-hosted e-commerce platform built as a Bun monorepo. It ships three tightly integrated apps — a Hono REST API backend, a React admin dashboard, and an Astro storefront — backed by PostgreSQL via Drizzle ORM. The platform is purpose-built for manual payment confirmation workflows (Zelle, bank transfers, cash on delivery) and supports guest and authenticated checkout with server-side price calculation and atomic stock management.

Quickstart

Spin up the full stack locally in minutes with Docker and Bun.

Architecture

Understand the monorepo structure, apps, and shared packages.

API Reference

Explore every REST endpoint — public storefront and admin routes.

Core Concepts

Learn how orders, payments, and the product catalog work together.

Platform Overview

The shop is organized as a monorepo with three applications and two shared packages:

Backend

Hono API on Bun with Better Auth, Drizzle ORM, and OpenAPI/Swagger UI.

Admin Dashboard

React 19 SPA for managing products, orders, payments, and users.

Storefront

Astro-based public-facing shop with product catalog and checkout.

Key Features

Multi-Currency Pricing

Products support multiple currencies with prices stored in minor units (cents) per ISO 4217.

Manual Payment Confirmation

Admin staff confirm payments (Zelle, transfer, COD) manually with full audit trail.

Order State Machine

Orders follow a strict lifecycle: pending_payment → paid → preparing → shipped → delivered / cancelled.

Guest Checkout

Customers can check out without creating an account. Authenticated users get order history.

Atomic Stock Control

Stock is decremented atomically at checkout to prevent overselling under concurrency.

Role-Based Access

Three roles (customer, staff, admin) with route-level enforcement via Better Auth.

Get Started

1

Install dependencies

Clone the repo and install all workspace dependencies with Bun.
git clone https://github.com/ItsJhonAlex/Ecommerce.git
cd Ecommerce
bun install
2

Configure environment

Copy .env.example to .env and fill in your database credentials and Better Auth secret.
cp .env.example .env
3

Start the database

Spin up PostgreSQL with Docker Compose, then run migrations.
bun run db:up
bun run db:migrate
4

Run all apps

Start the backend, admin dashboard, and storefront concurrently.
bun run dev
The backend runs on port 3000, the storefront on 4321, and the admin dashboard on 5174 by default. See the environment variables reference for all available options.

Build docs developers (and LLMs) love