littleshop/.spec.MD
2025-08-20 13:20:19 +01:00

2.1 KiB

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