Total Substitutes
--
Registered Users
--
Multi-Seller Offers
--
Open Inquiries
--
| Image | Original Product | Alternative Substitute | Category | Offers | Status | Actions |
|---|---|---|---|---|---|---|
| Loading product records from SQL database... | ||||||
| Name | Designation / Role | Phone | Joined Date | Logins | Searches | Scans | |
|---|---|---|---|---|---|---|---|
| Loading registered users... | |||||||
| Ticket ID | Submitter | Contact | Category | Subject | Status | Date | Actions |
|---|---|---|---|---|---|---|---|
| Loading support tickets... | |||||||
System Architecture & Storage
Relational SQL Database
- Engine: SQLite / SQL.js (WebAssembly)
- Persistent File:
data/alternate.db - Cloud Engine: Cloudflare D1 (Native SQLite compatibility)
- Tables: users, products, product_categories, alternative_products, seller_offers, user_activity, feedback, admin_accounts, sessions
- JSON Backup: Original
data/*.jsonpreserved untouched
File & Image Storage
- Local Upload Directory:
public/uploads/ - Cloud Storage: Cloudflare R2 Bucket Binding (
UPLOADS) - Accepted Formats: JPEG, PNG, WebP
- Max Upload Limit: 5 MB per asset
- Validation: Server-side MIME check & unique timestamp hashing
Security & Cryptography
- Password Storage: Salted PBKDF2 (10,000 iterations, SHA-512)
- Authentication: Cryptographically generated 256-bit session tokens
- Transport Security: HTTP-Only, SameSite cookies & Bearer tokens
- Role Separation: User self-promotion to admin blocked on server