A comprehensive, robust, and visually driven desktop application designed to digitize restaurant operations. This open-source project demonstrates a full-stack desktop solution including Visual Table Management, Kitchen Display Systems (KDS), Financial Reporting, and a custom Hardware-Locked Licensing System.
Restaurant POS is a standalone Windows desktop application built with WPF and .NET 10. Unlike traditional web-based systems, this app runs entirely offline and uses a Self-Contained deployment model. It features a custom Hardware Lock security mechanism, ensuring the software only runs on authorized machines.
-
Visual Table Management — Admin-controlled "Drag & Drop" canvas for designing floor plans. Table coordinates (
$X, Y$ ) are persisted in SQLite, and status updates (Empty/Occupied) happen in real-time. - Advanced Ordering System — Dynamic menu fetching from the database. The "Smart Basket" handles quantity adjustments, item removal, and supports percentage-based discounts.
- Multi-Currency Support — Real-time integration with the Central Bank (TCMB) API to fetch exchange rates and display order totals in USD ($), EUR (€), and GBP (£).
- Kitchen Display System (KDS) — A dedicated view for kitchen staff that syncs instantly with waiter terminals. Chefs can mark orders as "Ready" to update table status.
-
Hardware-Locked Licensing — Advanced security layer using
System.Management. Generates a uniqueMachineIDbased on CPU & Motherboard serials to prevent unauthorized copying. - Payment Flexibility — Supports Cash, Credit Card, and Meal Cards (Sodexo, Multinet).
This project simulates a commercial hardware-lock mechanism. You must generate a license key to run the app.
- Build the Solution — Open
Restaurant.slnin Visual Studio and build all projects (Restaurant + KeyGenerator). - Get Machine Code — Run the Restaurant app. Copy the unique code shown on the "License Activation" window.
- Generate Key — Run the KeyGenerator tool from the solution explorer, paste your Machine Code, and click
Generate Key. - Activate — Paste the resulting key back into the main Restaurant application and click
Activate. The app is now unlocked for your machine!
Note: This security layer is implemented to demonstrate advanced C#
System.Managementcapabilities and protection algorithms.
| Category | Technology Used |
|---|---|
| Framework | .NET 10.0 (C#) |
| UI / UX | WPF (Windows Presentation Foundation) / XAML |
| Database | SQLite (Production) / MS SQL Server (Development) |
| ORM | Entity Framework Core (Code-First) |
| Charts | LiveCharts.Wpf |
| Security | Custom Hardware Lock (WMI) |
# Clone the repository
git clone [https://github.com/YUKSELutku/RestaurantPOS.git](https://github.com/YUKSELutku/RestaurantPOS.git)
# Open in Visual Studio
start Restaurant.sln
Database Setup
The application uses Code-First Migrations.
You do not need to run manual SQL scripts.
When you run the app, context.Database.EnsureCreated() will automatically generate the Restoran.db SQLite file in the bin/output directory.
Run
Ensure Restaurant is set as the StartUp project.
Press F5.
Contributing
This is an open-source project for educational purposes. Feel free to fork, submit PRs, or use the code to learn how to build complex WPF applications.