NAME
EZOO POS System — Full-stack point-of-sale and inventory system for Rayon Energy — FastAPI async backend, Next.js/React frontend, and an Electron desktop app with real-time WebSocket updates and financial-grade precision.
SYNOPSIS
DESCRIPTION
Repository: GitHub - m-elhabib-dev/ezoo_pos
EZOO POS is a full-stack point-of-sale and inventory system built for Rayon Energy, a company specializing in solar equipment and electrical supplies.
The backend is a FastAPI service using async SQLAlchemy with PostgreSQL as the single source of truth. Financial precision is enforced through Decimal arithmetic instead of floating-point, preventing rounding errors in pricing, fees, and VAT.
The frontend is built with TypeScript and Next.js 14 (React 18) with TailwindCSS, and an Electron desktop application packages the full POS for Windows distribution.
The project covers core POS products and inventory, quick fee buttons, export and visualization dashboards (CSV/XLSX/PDF), Arabic RTL frontend completion, partner profit tracking and profit-sharing, and supplier accounting — developed spec-first across 8 feature phases with 71 commits.
TECH STACK
ARCHITECTURE
Modular FastAPI backend with separated API, schema, model, and service layers. Async SQLAlchemy 2.0 with PostgreSQL as the source of truth. Pydantic 2 schema validation with Decimal JSON serialization. Alembic migrations for schema versioning. WebSocket-based ConnectionManager for real-time stock and feature updates. Next.js 14 App Router frontend with Recharts dashboards. Electron + electron-builder desktop packaging.
BUGS / CHALLENGES
Preventing floating-point precision errors in financial workflows with Decimal types. Keeping multiple POS terminals in sync through WebSocket broadcasts. Structuring modular fee, VAT, and profit-sharing calculation systems. Exporting financial data to CSV/XLSX/PDF with consistent formatting. Packaging the FastAPI + Next.js stack as a distributable Electron desktop app.
EXIT STATUS / OUTCOMES
Delivered a financial-grade POS and inventory system in production for retail operations. Implemented real-time terminal synchronization and reusable quick-fee presets. Added partner profit tracking, supplier accounting, and Arabic RTL interfaces. Established an Electron desktop distribution path alongside the web frontend.