A lightweight, client-side Point of Sale (POS) system built with Blazor WebAssembly. This project demonstrates a functional POS application that runs entirely in the browser, leveraging various client-side storage options and modern web technologies.
- 📊 Dynamic Dashboard: Real-time sales visualization using Highcharts.
- 📦 Product Management: CRUD operations for products and categories.
- 🛒 Sales Processing: Easy-to-use checkout interface with voucher generation.
- 📄 Reporting: Detailed sales and inventory reports.
- 💾 Flexible Storage: Supports multiple storage providers:
- LocalStorage: Persistent browser storage.
- SessionStorage: Temporary session-based storage.
- IndexedDB: Robust client-side database for larger datasets.
- 📥 Data Export: Export sales data to Excel format.
- 🌱 Data Seeding: Built-in mock data generation for testing and demonstration.
- 🌓 Modern UI: Responsive design built with Tailwind CSS.
- Framework: Blazor WebAssembly (.NET 8/9)
- Styling: Tailwind CSS
- Charts: Highcharts
- Storage: Blazored LocalStorage & SessionStorage
- Excel Export:
@code-zhf/export-json-2-excel - Deployment: GitHub Actions & Vercel
The project uses Webpack to bundle JavaScript dependencies (like the Excel export tool).
- Navigate to the
NpmJSdirectory:cd BlazorWasm.MiniPOS/NpmJS - Install dependencies:
npm install
- Build the JavaScript bundle:
Note: The project is configured to run this automatically during the .NET build process.
npm run build
To run the project locally:
- Clone the repository.
- Open the solution in Visual Studio or use the CLI:
dotnet watch run --project BlazorWasm.MiniPOS/BlazorWasm.MiniPOS.csproj
This project is configured for automated deployment to Vercel via GitHub Actions.
- Workflow:
.github/workflows/deploy.yml - Hosting Config:
vercel.json
Every push to the master branch triggers a build and deployment cycle.
This project is open-source and available under the MIT License.