A sheet that calculates itself
Every merchandiser fills one monthly KPI sheet. Scores, percentages and deductions are computed against target the moment a figure changes — no spreadsheet formulas to break.
- Draft → submitted → approved, with locked months
- Managers approve or send back from one queue
- Quarter, half-year and year roll-ups built in
Everyone's numbers, side by side
A group page puts every merchandiser next to each other. The closing-balance report carries opening + new order − shipout − cancel forward month to month, and into the next fiscal year on its own.
- New order, shipped and cancelled — qty and value
- Group trend chart against the running balance
- One-click Excel export of the same view
Team A vs Team B, from the register
Shipments come from the export register, entered once. Buyers written on a merchandiser's profile count as the company's own team; every other buyer or buying house lands on the other side — automatically.
- Head-to-head: shipments, qty, value, average FOB
- Month-by-month and quarter filters
- Buying houses with their buyers, shown by share
Ask the portal, get the figure
Ansary AI is wired into the portal's own data. Ask about a month, a buyer or a commission bill and it calls the right report behind the scenes — then answers in the language you asked in.
- 18 tools: shipments, commission, KPI, team comparison, balance…
- Gemini first, Groq quietly takes over if one is busy
- Numbers cross-checked against the pages they come from
Monthly meetings that follow through
Agenda points and decisions live in the portal: who owns each one, who supervises, its status and due date. Last month's open items carry into the next meeting.
- Open / In process / Done, tracked per decision
- KPI sheets one click from the agenda
- Print or export the minutes to Excel
A sign-in page that hangs like a tag
The company makes garments, so the sign-in card is a glass hang-tag swinging from a gold thread, and every point of the portal is a button sewn along a stitched seam. Simple, a little playful, and still fast.
- Pure CSS motion — it calms down while you type
- Respects reduced-motion settings
- Same page reflows cleanly to phone width
Made for the shop floor and the boardroom
Tables turn into cards, menus into a drawer, and every number stays readable on a phone.
Plain, dependable building blocks
Backend
Python + Flask with Jinja templates, served by waitress. Role-based access: admin, management, commercial, quality and merchandiser views.
Data
PostgreSQL with a connection pool. Figures are always computed from stored inputs, never typed in twice.
Hosting
Runs on its own server and reaches the internet through a Cloudflare Tunnel — no open ports, HTTPS from the edge.
AI
Gemini and Groq with function calling. Each tool reuses the same report code as the page it mirrors, so answers match the screen.
Front end
Hand-written CSS and JavaScript — no framework. Motion is transform/opacity only, tuned for ordinary office laptops.
Safety nets
Login throttling, locked approved months, one-click backups, and import scripts that show a plan before they write.