Go to file
2026-07-08 15:53:25 +05:30
public inital commit 2026-07-06 12:23:45 +05:30
src fix: url set prefix with krishna sales 2026-07-08 15:53:25 +05:30
.gitignore fix:base url added krishnasales 2026-07-08 15:38:06 +05:30
CLAUDE.md Build app-434 field-sales console 2026-07-06 15:16:34 +05:30
eslint.config.js inital commit 2026-07-06 12:23:45 +05:30
index.html inital commit 2026-07-06 12:23:45 +05:30
package-lock.json fix:based on the recordview,form-screens response added filters,fields,prefills,charts 2026-07-07 12:39:58 +05:30
package.json fix:based on the recordview,form-screens response added filters,fields,prefills,charts 2026-07-07 12:39:58 +05:30
README.md Build app-434 field-sales console 2026-07-06 15:16:34 +05:30
response.json fix:based on the recordview,form-screens response added filters,fields,prefills,charts 2026-07-07 12:39:58 +05:30
tsconfig.app.json inital commit 2026-07-06 12:23:45 +05:30
tsconfig.json inital commit 2026-07-06 12:23:45 +05:30
tsconfig.node.json inital commit 2026-07-06 12:23:45 +05:30
vite.config.ts fix:base url set based on the command 2026-07-08 15:50:30 +05:30

Krishna Sales

Field-sales console for Zino sandbox app 434. A Vite + React + TypeScript SPA that browses the app's three workflows (Order Booking, Store, Daily Reports) over the Zino gateway.

  • Base URL: https://sandbox.getzino.in
  • Stack: React 19 · TypeScript · Vite 8 · Tailwind v4 · react-router v7 · lucide-react

Getting started

npm install
npm run dev        # http://localhost:5173

Sign in with your sandbox credentials (email / password, optional org id). The JWT is stored in localStorage and shared across all three workflow clients.

Other scripts:

npm run build      # tsc -b && vite build → dist/
npm run preview    # serve the production build
npm run lint       # eslint

Workflows (app 434)

The app has three workflows, each with its own workflow_uuid (shared APP_ID 434). One ZinoClient is bound per workflow.

Slug (config.ts) UI Record views Detail views
orderBooking Order Booking Orders, Calls Orders, Calls
store Store Store Store
dailyReports Daily Reports Daily Logs Daily Logs

All ids live in src/api/config.ts, sourced from the API docs in src/docs/api/.

Structure

src/
  api/
    client.ts      ZinoClient — HTTP client (login, views, activities, upload)
    clients.ts     per-workflow client singletons + shared auth (loginAll…)
    config.ts      app 434 ids: APP_ID, workflow uuids, activities, fields, views
    types.ts       API response types
  auth/            AuthProvider + useAuth (JWT session)
  components/
    buttons/       Button, IconButton
    reusable/      Card, Badge, Input, Select, Pagination, Modal, Spinner, EmptyState
    rv/            generic RecordView + wired Orders/Calls/Stores/DailyLogs views
    dv/            generic DetailView + wired Order/Call/Store/DailyLog details
  screens/         LoginPage, ConsoleLayout, WorkflowPage, tab defs
  lib/             cn (classnames), format (value formatting)
  styles/          Tailwind v4 theme + design tokens
  docs/api/        source API docs (one per workflow)

Routing

Path Screen
/login Login gate
/:tab Record view (orders · calls · stores · daily)
/:tab/:instanceId Same list with the detail modal open (deep-linkable)

Unknown paths redirect to /orders. Routes under the console require an authenticated session; a 401 bounces back to /login.

Design system

Tailwind v4 with CSS-variable design tokens (src/styles/) — navy brand surface, sunrise accent gradient, slate neutrals. Utility names (bg-navy-900, text-strong, shadow-md, rounded-lg) resolve to the tokens via an @theme block. Referenced from the lead-to-policy console.