Zippi is a monorepo with a Flask API backend and a Vite/React+Vue frontend. The two services run on separate ports and communicate over HTTP — the frontend’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/CRISTIANCAMACH34/Zippi/llms.txt
Use this file to discover all available pages before exploring further.
VITE_API_URL must always point to the backend, not to the Vite dev server. Follow the steps below to get both processes running locally from a fresh clone.
Full Setup
Prerequisites
Make sure the following are installed and available on your
Create the target MySQL database before running migrations:
PATH before
you begin:| Tool | Minimum version | Notes |
|---|---|---|
| Python | 3.11+ | 3.12 is used in CI |
| Node.js | 18+ | 20 is used in CI |
| MySQL | 8.0+ | Create the zippi_db schema manually |
| Redis | 6+ | Required for Celery; default port 6379 |
Set up the Python virtual environment
All backend commands are run from the
backend/ directory with the virtual
environment active.Copy and configure the environment file
Copy the example file to create your local Open Generate strong keys:
.env. The app reads .env
from inside the backend/ directory.backend/.env and set the three required secrets:Run database migrations
Apply all pending Alembic migrations to bring the schema up to date:After migrations, seed the base configuration data (service types, order
states, payment methods):
Start the backend API server
manage.py reads APP_HOST and APP_PORT from .env and starts Flask on
0.0.0.0:5000.Configure the frontend API URL
Open
frontend/.env and point the frontend at the running backend:Set
VITE_USE_MOCKS=true in frontend/.env to run the UI with mock data
when you don’t have the backend running. This is useful for pure UI
development or when working on frontend components in isolation.Verify the setup
With both processes running you should be able to reach all services:
If the backend fails to start, check that:
| Service | URL | Description |
|---|---|---|
| Backend API | http://127.0.0.1:5000/api/v1 | REST endpoints for all modules |
| Health check | http://127.0.0.1:5000/health | Liveness probe |
| Readiness check | http://127.0.0.1:5000/ready | Confirms DB connectivity |
| Frontend UI | http://127.0.0.1:5174 | Vite dev server with hot reload |
- Your virtual environment is active (
which pythonshows.venv/) DATABASE_URLinbackend/.envmatches your MySQL credentials- The
zippi_dbdatabase exists and MySQL is running - Redis is running on
127.0.0.1:6379(orREDIS_URLis updated)
Optional: Celery Worker
Background jobs (order assignment timeouts, notifications) run in a separate Celery worker process. Redis must be running before starting the worker.redis://127.0.0.1:6379/0 — adjust
CELERY_BROKER_URL and CELERY_RESULT_BACKEND in .env if your Redis
instance listens elsewhere.
Optional: Create an Admin User
Usecreate_admin.py to bootstrap an administrative account scoped to a
specific branch or the whole platform:
backend/docs/rbac_roles_matrix.md for the full role and scope matrix.