Frederick Garcia
← Back to Home

Arqueo POS Offline

Arqueo POS Offline is a comprehensive, offline-first Point of Sale (POS) application built with Flutter. It is designed to empower merchants and small businesses to efficiently manage their sales, inventory, customers, and employees entirely locally—without the need for an internet connection or reliance on cloud services.

🚀 General Idea

The core philosophy behind Arqueo POS Offline is reliability and privacy. By storing all data locally on the device, the app ensures that businesses can continue operating even in environments with poor or no internet connectivity. It provides an end-to-end management system, from defining catalog items and taxes to generating customized invoices with QR codes and detailed reporting.

🛠 Technologies Used

  • Framework: Flutter (SDK ^3.8.1)
  • State Management: flutter_riverpod
  • Navigation: go_router
  • Local Database: sqflite for offline data storage
  • Internationalization (i18n): easy_localization (Supports English, Spanish, French, Portuguese, Haitian Creole, German, and Italian)
  • PDF & Printing: pdf and printing for generating and printing physical receipts
  • QR Generation: qr_flutter to embed unique QR codes in sales receipts
  • Subscriptions: purchases_flutter (RevenueCat) for premium features management
  • Telemetry & Stability: firebase_analytics and firebase_crashlytics (Active only in release mode)

📦 Data Models

The application relies on a robust relational local database structured in SQLite. Key models include:

  • Customers: id, name, phone, address, email, isActive
  • Employees: id, name, phone, email, isActive
  • Taxes: id, name, rate (e.g., ITBIS 18%, Exempt)
  • Products: id, name, price, cost, stock, taxId, isActive
  • Services: id, name, price, cost, taxId, isActive
  • Invoice Types: id, name, sequenceStart, sequenceEnd, code, prefix, currentSequence, active
  • Sales: id, date, qrcode, customerId, employeeId, invoiceTypeId
  • Sale Details: id, saleId, productId, serviceId, quantity, priceAtSale, costAtSale, taxRateAtSale, itemName

🏗 Architecture & Structure

The project rigorously follows Clean Architecture combined with a Feature-Driven directory structure.

  • lib/core/: Contains cross-cutting concerns, utilities, theming, routing configurations, common widgets, and global services.
  • lib/features/: Contains domain-specific modules such as sales, products, services, customers, employees, home, reports, subscription.

🔒 Security & Best Practices

  • Offline-First & Data Privacy: All sensitive business and customer data is stored locally in the SQLite database.
  • Soft Deletion: Instead of hard-deleting catalog items, the system utilizes an isActive flag.
  • Database Transactions & Atomicity: Critical operations use SQLite transactions.
  • Historical Accuracy: Price and cost are explicitly copied into the sale_details table at the moment of sale.