Skip to content

Joudi03/StockPulsePOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StockPulse POS

A Point-of-Sale and Inventory Management desktop app built with .NET MAUI 9. Dark-themed, cross-platform, and runs on Windows, macOS, Android, and iOS from a single codebase.

This started as a personal project to learn MAUI properly — MVVM patterns, SQLite integration, dependency injection, and building something that actually looks good rather than just works.

.NET MAUI Platform Architecture


What it does

Dashboard — overview of your inventory at a glance. Stock levels, today's revenue, low stock alerts, and total stock value. Search and filter products by category directly from here.

Point of Sale — tap products to add them to the cart. Supports customer selection with automatic loyalty discounts, VAT calculation (19%), and three payment methods: card, cash, or mobile pay. Completing a sale deducts stock and saves the transaction to the database.

Inventory — full product management. Add, edit, or delete products. Each product shows a color-coded stock status (in stock / low stock / out of stock) and a progress bar based on current vs. max stock.

Reports — today's revenue, total transactions, and a scrollable list of recent sales.

Settings — store name, currency, VAT rate, and feature toggles for loyalty points, low stock alerts, and receipt printing.


Stack

  • .NET MAUI 9 — cross-platform UI
  • CommunityToolkit.Mvvm[ObservableProperty] and [RelayCommand] source generators, no boilerplate
  • SQLite-net-pcl — local database with async API
  • CommunityToolkit.Maui — additional controls
  • C# 12

Project structure

StockPulsePOS/
├── Models/
│   ├── Product.cs
│   └── Transaction.cs
├── Services/
│   ├── DatabaseService.cs
│   ├── CartService.cs
│   └── ExportService.cs
├── ViewModels/
│   ├── DashboardViewModel.cs
│   ├── PosViewModel.cs
│   ├── CartViewModel.cs
│   ├── InventoryViewModel.cs
│   ├── ReportsViewModel.cs
│   ├── ProductFormViewModel.cs
│   ├── CustomerPickerViewModel.cs
│   └── SettingsViewModel.cs
├── Views/
│   ├── DashboardPage.xaml
│   ├── PosPage.xaml
│   ├── InventoryPage.xaml
│   ├── ReportsPage.xaml
│   ├── SettingsPage.xaml
│   ├── ProductFormPage.xaml
│   └── CustomerPickerPage.xaml
├── Converters/
│   └── Converters.cs
└── Resources/
    └── Styles/
        ├── Colors.xaml
        └── Styles.xaml

Architecture is straight MVVM with a service layer. CartService is a singleton shared between the POS and cart ViewModels — it fires a CartChanged event so the UI stays in sync without polling. DatabaseService handles all SQLite operations and seeds 10 products + 3 customers on first launch.


Running it

Requirements:

  • Visual Studio 2022 (17.8+) with the .NET MAUI workload installed
  • .NET 9 SDK
git clone https://github.com/YOUR_USERNAME/StockPulsePOS.git
cd StockPulsePOS
dotnet workload install maui
dotnet restore

Open StockPulsePOS.sln in Visual Studio, set the target to Windows Machine, and hit F5. The database is created and seeded automatically on first run.


Notes

Data is stored locally in a SQLite file — nothing leaves the device. The "Clear All Data" button in Settings wipes everything permanently, so don't press it unless you mean it.

The app is optimized for desktop/tablet. It works on mobile but was designed with a wider screen in mind.


License

MIT

About

Point of Sale & Inventory Management app built with .NET MAUI 9

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages