SGOS
SGOS (Simple Gastronomical Ordering System) is an ordering system that I developed for our fire brigade festival. It is web-based and runs on various devices.
Features
Ordering
The most important function is creating and managing orders. The process begins with table selection. Tables can be assigned to groups for better overview. Products are also assigned to groups and subgroups to keep the lists clear and manageable. Modifiers can be selected for products to accommodate special requests, such as “no ketchup” or “with tap water.” These modifiers can be predefined for each product, or a free-text field can be used.
After selecting the table and products, a summary screen appears where everything can be double-checked. There is also an option to add a comment that applies to the entire order. If everything is correct, the billing process follows. Discounts can be applied, and there are functions like tip and change calculators. It is also possible to split an order into multiple bills.
This completes the ordering process. Receipts can be printed if desired. In the background, tasks are created and sent to workstations for processing. The status of created orders can be checked at any time, and there are dedicated search and filter options.
Tasks
Each station has its own view where active tasks are listed. These tasks can also be marked as completed. Once all tasks of an order are completed, the order itself is marked as completed. Additionally, each station has a display that summarizes all products from open tasks.
Inventory & Reservations
For products that are heavily limited, inventory levels can be set. If an inventory level drops to zero, the corresponding products are automatically locked. The inventory level can be adjusted at any time. Multiple ingredients can be assigned to a product in the inventory, and one ingredient can be used for various products.
Products that use limited ingredients can also be reserved. Each reservation requires a code. The reservation can then be selected during the ordering process, which unlocks the products and consumes the reservation.
Statistics
An overview of all products sold is available. Current revenue can also be viewed.
Print Server
Receipts and orders can be printed, either manually or automatically. It can be freely configured which printer is used for which station or for receipts. Administrators can print access credentials for waitstaff, including a QR code for quick login.
Technology
SGOS is a web app accessed via a web browser. The frontend is developed with TypeScript and SolidJS. The backend is written in Go, and MySQL is used as the database. The project currently consists of just over 15,000 lines of code.
The app runs on various devices, including smartphones, tablets, and PCs. Thermal printers are connected via Wi-Fi and ESC/POS.
Significance for Me
SGOS is the largest project I have worked on so far. It is my first real web app and the first project I developed for use by others. It represents my skills as a software developer more than any of my other projects.