SansiStore is a full-stack e-commerce web application built for Universidad Mayor de San Simón (UMSS). It covers the complete purchase lifecycle — from product browsing and cart management, through seller order fulfillment and courier delivery, to inventory tracking and platform administration — inside a single, cohesive codebase. The app is deployed as a Progressive Web App (PWA) on Vercel, making it installable and partially offline-capable on any device.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ProcesosAgilesUMSS/sansistore/llms.txt
Use this file to discover all available pages before exploring further.
Five User Roles
SansiStore is built around five distinct roles, each with its own portal, default route, and set of permissions. A single Firebase Auth account can hold multiple roles simultaneously.| Role | Spanish name | Default Route | Responsibilities |
|---|---|---|---|
| Buyer | Comprador | / | Browse the catalog, manage a cart, place and track orders |
| Seller | Vendedor | /seller/created-orders | Accept, package, and dispatch orders; manage daily collections and offers |
| Courier | Mensajero | /courier | Pick up packaged orders and handle last-mile delivery with map support |
| Inventory Operator | Operador de Inventario | /inventory | Register stock entries and exits, record movements and incidents |
| Admin | Administrador | /admin | Full platform access: users, categories, analytics, audit logs, reconciliation |
Key Technologies
- Astro 6 — server-side rendered pages (
output: 'server') with the official Vercel adapter - React 19 — interactive UI islands inside Astro pages
- Firebase Auth — Google OAuth sign-in, restricted to
@umss.eduaccounts in production - Cloud Firestore — real-time NoSQL database with 18 collections (some as subcollections)
- Firebase Storage — product image hosting
- Tailwind CSS v4 — utility-first styles with custom
--theme-*design tokens - Nanostores — lightweight shared state for cart and auth across islands
- vite-pwa / @vite-pwa/astro — PWA manifest, service worker, and offline caching
- Vercel — two environments:
mainbranch → staging,productionbranch → live
Where to Go Next
Quickstart
Clone the repo, start Firebase emulators, seed test data, and run the dev server in under five minutes.
Architecture Overview
Understand how Astro SSR, React islands, Firebase, and Tailwind fit together.
Product Catalog
How products, categories, search, and filtering work for buyers.
Seller Order Management
How sellers move orders through the fulfillment lifecycle.
Courier Delivery Flow
How couriers receive assignments, confirm pickups, and record delivery outcomes.
Admin Dashboard
User management, audit logs, reconciliation, and platform analytics.
@umss.edu domain restriction — In production, the Google OAuth provider is configured with
hd: 'umss.edu', which forces the Google account chooser to filter to institutional accounts only. The prompt: 'select_account' parameter also prevents auto-login with a non-institutional cached account. During local development with the Auth emulator, this restriction is not enforced and any email can be used.