Vision Mart is a robust, Flutter-based Inventory and Point of Sale (POS) management application designed for small to medium-sized retail businesses (specifically optimized for Electronics/Appliance stores). It streamlines daily operations including stock management, sales invoicing, due tracking (Khata), expense recording, and business analytics.
Built with Flutter and Firebase, utilizing Riverpod for state management to ensure a scalable, reactive, and transactional (ACID-compliant) architecture.
- Batch Receiving: Efficiently add multiple products at once with a "Batch Inward Challan" system.
- Smart Pricing Calculator: Auto-calculates Commission % or Flat Discount based on MRP and Buying Price inputs.
- Stock History & Logs: View granular history of every batch received.
- Correction Mode: Unique "Correct Mistake" logic that handles moving stock between models or updating details using ACID transactions to ensure data integrity.
- Challan Printing: Generate and print PDF Inward Challans for physical record-keeping.
- Low Stock Alerts: Visual indicators for items running low on quantity.
- Dynamic Cart System: Add items, adjust quantities, and toggle between Percentage (%) or Flat (Tk) discounts per item.
- Global Discounting: Apply a global discount to the total bill which automatically prorates (distributes) the discount across all items for accurate profit calculation.
- Invoice Preview: Review the invoice PDF before finalizing the sale to prevent errors.
- Stock Validation: Real-time checks prevent selling more items than physically available.
- Sales Correction: Edit existing invoices or Delete Invoices with automatic Stock Restoration (reverts items back to inventory).
- Track Dues: Monitor customers with outstanding balances.
- Payment Deadlines: Set specific payment dates. Includes a Countdown Timer (e.g., "3 days left" or "Overdue") for urgency.
- Searchable List: Quickly find dues by Customer Name, Phone, or Invoice ID.
- Partial Payments: Record partial payments; the system automatically calculates the remaining balance.
- Money Receipts: Generate professional PDF money receipts for every payment transaction.
-
Live Dashboard: Real-time overview of:
-
Current Stock Value: Value of unsold assets.
-
Investment: Cost of goods sold.
-
Net Profit: Actual earnings after expenses.
-
Advanced Reporting:
-
Profit/Loss Filters: Toggle to see only profitable sales or loss-making transactions.
-
Search: Find specific historical invoices by ID or Customer Name.
-
Date Ranges: Analyze by Today, Yesterday, This Week, Month, Year, or Custom Range.
- Batch Entry: Add multiple expense items (e.g., Rent, Tea, Salary) in one go.
- Expense Reports: Generate PDF reports for expenses within specific periods.
- Categorization: Pre-defined categories for easier financial sorting.
- Admin Login: Secure Email/Password authentication via Firebase Auth.
- Password Reset: Built-in "Forgot Password" flow to send reset emails.
- Transactional Integrity: Uses Firestore Transactions/Batches to ensure money and stock numbers never go out of sync during failures.
- Adaptive Theme: Fully optimized high-contrast Dark Mode (Slate/Blue/Yellow palette) and Clean Light Mode.
- Material 3 Design: Modern UI components, cards, and typography.
- Responsive Layouts: Optimized for tablets and phones.
-
Framework: Flutter
-
Language: Dart
-
Backend: Firebase
-
Authentication: Admin management.
-
Cloud Firestore: NoSQL Database (Heavily uses
runTransactionandWriteBatch). -
State Management: Flutter Riverpod (v2.x)
-
PDF Generation:
pdf&printingpackages (Thermal & A4 support). -
Formatting:
intl(Currency and Date formatting).
The project follows a Feature-First (Layered) architecture:
lib/
βββ firebase_options.dart # Firebase Configuration
βββ main.dart # Entry point & Theme Provider
βββ src/
βββ services/ # Global services (AuthService)
βββ features/
βββ authentication/ # Login, Forgot Password
βββ inventory/ # Product Model, Repo, Add/Edit/Receive Screens
βββ sales/ # POS Cart, Discount Logic, PDF Generator
βββ analytics/ # Dashboard, Profit Calculation, Sales Detail
βββ expenses/ # Batch Expense Entry, Reports
βββ due_management/ # Deadline Timer, Payment Processing
- Flutter SDK installed.
- A Firebase Project created.
- Clone the repository:
git clone https://github.com/your-username/vision-mart-app.git
cd vision-mart-app
- Install dependencies:
flutter pub get
- Firebase Setup:
- This project relies on Firebase. You must configure your own Firebase project.
- Run
flutterfire configureto generate thefirebase_options.dartfile. - Enable: Authentication (Email/Password) and Cloud Firestore in your Firebase Console.
- Run the app:
flutter run
| Dashboard-1 | Dashboard-2 | Current stock |
|---|---|---|
![]() |
![]() |
![]() |
| Stock Detailed | Receive Stock | New Sale |
|---|---|---|
![]() |
![]() |
![]() |
| Invoice Detailed | Sales Report All | Sales Report Profit Only |
|---|---|---|
![]() |
![]() |
![]() |
| Sales Report Loss Only | Due List Screen | Due List Payment Dialog |
|---|---|---|
![]() |
![]() |
![]() |
| Expanse List | Add Expanse List Dialog | |
|---|---|---|
![]() |
![]() |
The app generates:
- A4 Invoices: For Sales and Inventory Challans.
- A6 Receipts: For Due Payments (Money Receipts).
- Ensure a PDF viewer is available on the device, or connect to a thermal/standard printer via the print preview dialog.
Contributions are welcome! Please follow these steps:
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the MIT License.
Developed for A & R Vision Mart.













