Self-Checkout is interface project to enable self checkout in a store scenario. The project is developed using MVVM design pattern, is DB-First and uses example Store DB as it assumes the store should already have DB filled with products and their respective categories.
- Loading products from DB
- Filling product categories for manual search if EAN-13 code is not known
- Placeholder icons for products that have no icons in DB
- Saving finalized order information to DB
- Touch screen support + keyboard input support (As a solution to barcode scanners as these work like a keyboard.)
- Entering of digits Hotkeys
- Clear Screen Hotkey (Backspace)
- Add product to list from screen code Hotkey (E)
- Go back to welcome screen Hotkey (R)
- Support of weighted products (Currently generating random weights as placeholder for a real scale.)
- Printing of bills (.pdf file by default. Done By using Microsoft To Pdf Printer.)
- Program loop
โ Design view may not render if visual studio version is lower than 2019 16.6 and the option Use the preview Windows Forms designer for .NET Core apps
is disabled.
โ By default bill printing works by printing to .pdf file in PrintOuts folder located in bin/Debug
or bin/Release
this may โ NOT work if you do not have Microsoft Print to PDF
Printer installed. Edit Config/Receipt.cs
PrinterName and disable PrintToFile
or install Microsoft Print to PDF
if that is the case.
โ By default the program uses localhost as the ip for DB and also uses windows authentication. Edit connection string in App.config
if needed.
- Clone this repository
- Create DB named
Store
and SQL Tables - (SQL_CreateTable.txt) - Insert records into tables - Example records (without product images) - (SQL_Insert.txt)
- Run the project file, right click the solution and rebuild it
- Switch the configuration from
Debug
toRelease
to run the program in fullscreen as intended without any extra controls that could create security breach