About this software
About SalesReport AI - Sales Analytics, AI Summary & PDF Invoice (Bangla/English)
SalesReport AI is a React + Node.js (Express, Prisma) full-stack web app for small businesses and distributors. Upload CSV or XLSX sales data, get an AI sales summary via OpenAI, Gemini, or Claude using the buyer's own API key (with a rule-based fallback when no key is set), interactive charts, and a PDF report & invoice that supports a company logo. Includes an admin panel for customers, products and invoices, admin/staff roles, Bangla + English UI, and dark mode. Deploy docs cover Docker, Render and PM2. Live demo available (sample data, resets daily). Demo login details are shown on the demo's sign-in page / provided to reviewers. Now with 7 UI languages (English, Bangla, Spanish, French, Arabic, Hindi, Portuguese), 44 currencies and a landing page with a Live Demo button.
Why SalesReport AI - Sales Analytics, AI Summary & PDF Invoice (Bangla/English)
What makes it better
than the alternatives
- 01
Bangla + English throughout
The web UI has en and bn locale files, and PDFs embed a merged Noto Sans Bengali/Latin font for correct conjunct shaping.
- 02
Bring-your-own AI key
OpenAI, Gemini and Anthropic providers are pluggable; keys can be set in .env or by an admin in Settings, stored AES-256-GCM encrypted and shown masked.
- 03
Never-broken summaries
A deterministic rule-based summary engine takes over when no key is configured or the provider fails.
- 04
Forgiving data import
Parser handles Bangla digits, ৳ and lakh-style commas, (300) negatives, multiple date formats and Excel serial dates, with row-by-row error reports.
- 05
Security-minded auth
Argon2 hashing, short-lived JWT access tokens, rotating refresh cookies with reuse detection, CSRF protection, progressive account lockout, rate limiting, Helmet CSP, and org-scoped queries.
Data Upload & Mapping
- CSV and XLSX upload with a 3-step wizard: choose file
- column mapping
- preview and import
- Auto-detects English and Bangla column headers
- Skips invalid rows and reports them
- CSV export of datasets
Sales Analytics
- Total revenue
- order count
- average order value and units sold
- Best product by revenue and by quantity
- best weekday
- best date
- Daily and monthly trends
- month-over-month and period growth
- Top products and top customers; interactive Recharts charts
AI Summary
- Headline
- overview
- insights and recommendations in English or Bangla
- OpenAI
- Gemini and Anthropic providers plus OpenAI-compatible base URL
- Summaries stored per dataset and language
- with regenerate option
- Rule-based fallback engine
PDF Reports
- Server-side pdfkit reports with no headless browser
- Logo header
- KPI cards
- monthly and daily charts
- AI summary
- top products and customers
- weekday performance
- Language selectable per download
Invoicing
- Invoices with line items
- fixed or percentage discount and tax
- Status updates
- configurable prefix and numbering
- Invoice PDF in Bangla or English and invoice CSV export
- Org-level logo
- tax ID
- footer and notes
Customers & Products
- Customer and product CRUD with pagination
- Org-scoped data access
Dashboard
- Dashboard route and page summarising organisation data
- Dark mode and mobile-responsive layout
Auth, Users & Admin
- Registration (can be disabled) creating a new organisation per sign-up
- Admin and staff roles; admins manage users and AI settings
- Change password with sign-out everywhere
- Company
- profile
- AI and users settings pages
Deployment & Ops
- Dockerfile and docker-compose with a persistent volume
- render.yaml and render.demo.yaml
- PM2 config
- GitHub Actions CI
- Demo mode with daily reset and seed data
- Vitest tests for auth
- upload
- analytics
- invoices and LLM providers
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| TypeScript | — | — | Front-end | 46.5% |
| TypeScript (React) | — | — | Front-end | 30.9% |
| SQL | — | — | Database | 21.5% |
| CSS | — | — | Styling | 0.5% |
| JavaScript | — | — | Front-end | 0.4% |
| HTML | — | — | Front-end | 0.1% |
- Primary language
- TypeScript 5.9 (Node.js 20+ runtime)
- Framework
- React 18 + Vite 8 (web) · Express 5 (API) · Prisma 6
- Database
- SQLite (default) · PostgreSQL supported via Prisma
- Authentication
- JWT access tokens (15 min) + rotating httpOnly refresh cookies, CSRF tokens, progressive login lockout
- Licence
- Single-site
- Screens
- 22
- Database tables
- 11
- Supported languages
- English and Bangla (bn), with Bangla UI and PDF strings; no RTL layout
- Browser support
- Modern evergreen browsers (Chrome, Edge, Firefox, Safari) — no legacy support stated
| Minimum | Recommended | |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 1 GB | 2 GB |
| OS | Linux (Docker image: node:22-bookworm-slim) · Node.js 20.11+ · OpenSSL | Linux (Docker image: node:22-bookworm-slim) · Node.js 20.11+ · OpenSSL |
| Est. monthly hosting | $10 | $10 |
```bash cp .env.example .env # fill JWT_ACCESS_SECRET and ENCRYPTION_KEY (openssl rand -hex 32) docker compose up -d --build ``` App runs on http://localhost:4000.
```bash git clone <your-repo> salesreport && cd salesreport npm run setup npm run build npm start ``` Put Nginx or Caddy in front for HTTPS and set TRUST_PROXY=1.
Use the included render.yaml blueprint, then set JWT_ACCESS_SECRET and ENCRYPTION_KEY in the dashboard.
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
Reviewer notes (5 minor)
Small improvements the developer has been told about. None of them stop the software from working.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.