Justin

Command Palette

Search for a command to run...

Back to project archive
In progress2026backend-desktop

CulturePOS Cultural-Retail POS Desktop System

A cross-platform cultural-retail point-of-sale app built with .NET 10 and Avalonia

CulturePOS is a cross-platform desktop POS system built with C# .NET 10 and Avalonia UI, targeting bookstores, museum shops, and cultural retail. It uses a clean App/Core/Infrastructure/Tests layered architecture with MVVM, and has delivered three core modules so far: product management, inventory management, and POS checkout, all persisted via EF Core + SQLite.

Verified Demo Recording 1

Copied by the portfolio quality pass from existing project demo media.

11 screenshots2 demo videos

Media overview

Browse the project screenshots and recorded walkthroughs.

Project links and demo readiness

Project overview

## Overview CulturePOS Desktop is a cross-platform point-of-sale (POS) application built with **C# .NET 10** and **Avalonia UI**, targeting bookstores, museum shops, library gift shops, and campus co-ops in the cultural-retail space. It is scoped as a portfolio-grade business system rather than stopping at an MVP. ## Architecture The system follows a clean layered architecture across four projects: `Core` holds pure business models, enums, and service interfaces with no UI or database dependencies; `Infrastructure` implements data access and business services on EF Core + SQLite; `App` composes the UI with MVVM (CommunityToolkit.Mvvm) and the Microsoft DI container; and `Tests` validates service logic with xUnit. Architecture rules explicitly forbid business logic in the UI and direct database access from ViewModels. ## Core Features Three modules are implemented: **Product management** (categories, unique SKU/barcode, activation toggles, and multi-criteria search), **Inventory management** (stock adjustment, safety stock, low-stock alerts, and a complete InventoryTransaction audit trail), and **POS checkout** (barcode/SKU product search, cart management, payment methods, and automatic stock deduction with Sale/SaleItem persistence at checkout). Login uses role-based mock authentication (cashier/manager/admin) and drives role-based sidebar visibility. ## Engineering Notes The data layer uses a DbContextFactory to manage connections, matching desktop best practice of not holding a single long-lived DbContext; the schema is managed with EF Core migrations. ## Roadmap Per the roadmap, upcoming work expands into membership & points, a discount/promotion engine, purchase orders, returns handling, sales reports, PDF receipts, and Excel import/export, growing toward a complete, real-world retail desktop business system.

My role

Full-stack & architecture owner (personal portfolio project)

Problem

Small and mid-sized cultural retailers (bookstores, museum shops, campus co-ops) need an offline-capable, cross-platform POS that fully handles products, inventory, and checkout, but most off-the-shelf options are Windows-locked or cloud-bound and hard to self-host or customize on Linux.

Solution

Build a cross-platform desktop app on .NET 10 and Avalonia UI with a clean layered architecture: Core holds pure business models and interfaces, Infrastructure holds EF Core/SQLite data access and services, and App wires up views via MVVM and dependency injection. Connections are managed through a DbContextFactory, every stock change is recorded as an InventoryTransaction, and checkout automatically deducts stock while writing Sale/SaleItem records.

Current outcome

Delivered a role-based, navigable desktop shell plus product CRUD, inventory adjustment with safety-stock and low-stock alerts, and a POS checkout flow with barcode search and payment methods. Four core services are covered by xUnit unit tests, and the schema is managed through EF Core migrations.

Highlights

  • Clean layered architecture (App / Core / Infrastructure / Tests): UI holds no business logic and ViewModels never touch the database directly
  • Products, inventory, transactions, and sales persisted with EF Core + SQLite, with schema evolution managed via migrations
  • POS checkout supports barcode/SKU search, cart quantity edits, payment methods, and automatic stock deduction
  • Inventory module provides safety-stock and low-stock alerts plus a full InventoryTransaction audit trail
  • CommunityToolkit.Mvvm and a DI container cut boilerplate; desktop connections managed via DbContextFactory
  • Four core services (Product/Inventory/Pos/Auth) covered by xUnit unit tests

Engineering challenges

  • Correctly managing the EF Core DbContext lifecycle in a desktop app, switching to DbContextFactory to avoid holding a single long-lived connection
  • Writing the sale record while deducting stock and recording the movement within one consistent operation at checkout

Target users

  • Portfolio reviewers and interviewers
  • Technical readers who need a quick view of purpose, stack, and maturity

Technical highlights

  • Detected technical signals: C#, .NET 10, Avalonia, MVVM, CommunityToolkit.Mvvm, Entity Framework Core, SQLite, Microsoft.Extensions.DependencyInjection, xUnit
  • README evidence exists and can support a fuller reviewed case study
  • A public GitHub repository is not verified yet; the portfolio marks it as pending

Architecture

This case study is generated from the portfolio catalog pipeline using README, Git metadata, package/build configuration, and media signals. The final architecture narrative still needs source-level review. Current detected technology signals include: C#, .NET 10, Avalonia, MVVM, CommunityToolkit.Mvvm, Entity Framework Core, SQLite, Microsoft.Extensions.DependencyInjection, xUnit.

Data flow

A public data-flow narrative is not fully reviewed yet. If the project includes data processing, AI pipelines, or backend APIs, the next pass should document input, processing, storage, and UI/output flow end to end.

Project structure

CulturePOS/
  README.md              # project documentation, when available
  source files           # implementation reviewed by local audit
  package/build config   # detected capability signals

Setup / Run guide

This project does not expose a verified runnable web command yet. Review the README/source tree and add exact install, run, test, and build commands before interview use.
No verified build command was detected. Treat the current portfolio page as a case-study placeholder until build steps are reviewed.

Future improvements

  • Complete the production-quality README, screenshots, and demo recording
  • Add architecture diagrams, data-flow notes, and key technical decisions
  • Verify build/test status and update the portfolio release report

Interview notes

  • State the current maturity and demonstrable scope first
  • Focus on verified stack, source structure, and completed behavior
  • Do not claim unverified deployment, video, or test coverage as finished

Next steps

  • Implement membership & points and the discount/promotion engine (Roadmap Phase 5-6)
  • Add sales reports, PDF receipts, and Excel import/export (Phase 9-11)

Related projects