BASIC ONLINE SALES SYSTEM - BACKEND \# Admin Panel \- All pages to be authenticated \- Use local SQLite database … would redis be any use for performance? Views / Data structures: \- Categories > Category Editor (CRUD) \- Products List > Product Editor (CRUD)   - Product data is to be:   - Id (Guid)   - Name (string)   - Description (long text + Unicode/emoji support)   - ProductWeightUnit (Unit, Micrograms, Grams, Ounces, Pounds, Millilitres, Litres)   - Product Weight (double? value in relation to Product Weight Unit value)   - Photos (a sub list of multiple images associated with the product)   - BasePrice (currently we will assume GBP is the base currency) \- Users List > User Editor \*(CRUD)   - Username / Password only. No email. This is a staff user list only for accessing this system. Create a default (admin/admin) user. \- Orders List … see order-workflow below. \- Accounting … this area will contain these sections:   - Dashboard … financial overveiew based on the Pending Orders and Payments Received etc.   - Unpaid Order (aka pending)   - Payments Received (lists recent first payments detected to crypto wallets relating to active order)   - Completed … view recent transactions list, a ledger I guess based on all transactions in the system. \#order-workflow: 1\. Purchase received via API 2\. Order create + await payment 3\. Payment detected > Order gets marked for processing by say the "Picking \& Packing Team". 4\. The pickers prepare the order, hit the "ITS BEEN PICKED OR WHATEVER" button which then registers the job on royal mail, spits out a label for them to stick on the package and updates the customer with the tracking number. \# WEB API  - This should allow a client application to retrieve a list of products, retrieve a list of only orders relating the end clients identity-reference (string), create a new order, retrieve own orders (by identity-reference), retrieve own order details (including the per order crypto payment instructions \& wallet address), cancel order and get help with order