Yakult App is a mobile-first sales management system built for Yakult distribution teams in Mexico. It combines a React Native (Expo) frontend with an Express.js REST API and MySQL database to give distributors, promoters, and delivery drivers everything they need in one place.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/160906/Yakultt-App/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
Get the backend and mobile app running locally in minutes.
Architecture
Understand how the backend, database, and mobile app fit together.
API Reference
Explore every REST endpoint with request/response examples.
Deployment
Deploy the backend and configure the mobile app for production.
What You Can Do
Manage Products
Track SKUs, prices, stock levels, and categories for your full catalog.
Manage Clients
Add and maintain client records with contact info and active status.
Process Orders
Create orders, assign delivery drivers, and advance order status.
Sales Reports
Generate filterable reports with PDF export and printable HTML.
Notifications
Delivery drivers receive in-app alerts when orders are assigned or updated.
User Roles
Master, Promotor, and Repartidor roles control access across the app.
How It Works
Set up the backend
Clone the repo, install dependencies, configure your MySQL connection in
backend/db.js, and start the server. The schema is created automatically on first run.Run the mobile app
Install Expo dependencies in
yakult-app/, point services/db.ts at your backend URL, and launch with expo start.Create your first user
Register via
POST /api/auth/registro. Use an @upa.edu.mx email to receive the Master role automatically, giving you full admin access.Tech Stack
| Layer | Technology |
|---|---|
| Mobile App | React Native 0.74 + Expo 51 + Expo Router |
| Backend | Node.js + Express 5 |
| Database | MySQL 8 (via mysql2/promise) |
| Auth | JWT (jsonwebtoken) + bcryptjs |
| PDF Reports | PDFKit |
| State | React Context (AuthContext, ToastContext) |