00.overview
- Back
- 00.overview.md
-
01.admin
- 00.overview.md
-
01.auth
-
02.user-management
-
03.group-management
-
04.announcement-management
-
05.guide-management
-
02.general
- 00.overview.md
-
01.analysis
-
02.auth
-
03.chat
-
04.checkout
-
05.packages
-
06.wishlist
- 00.overview.md
-
01.temp-wishlist-to-group
-
02.wishlist-to-group
-
07.file-storage
-
08.unique-product-upload
-
09.dataset-workflow
-
10.landing-page
-
11.download-review-csv
-
03.widget
Unique Product Upload
Description
Enable uploading a CSV of unique products for registration/processing. Files are authenticated, stored, and imported asynchronously via background jobs.
Overview Activity Diagram
---
config:
theme: base
layout: dagre
flowchart:
curve: linear
htmlLabels: true
themeVariables:
edgeLabelBackground: "transparent"
---
flowchart TB
Client[Client App]
Upload[Unique Product Upload]
Controller[UniqueProductWishlistController]
Service(UniqueProductUploadService)
Storage[(GCS)]
Queue[(Queue)]
Upload --- Step1[
<div style='text-align: center'>
<span style='display: inline-block; background-color: #6699cc !important; color:white; width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-weight: bold'>1</span>
<p style='margin-top: 8px'>POST CSV</p>
</div>
]
Step1 --> Controller
Controller --- Step2[
<div style='text-align: center'>
<span style='display: inline-block; background-color: #6699cc !important; color:white; width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-weight: bold'>2</span>
<p style='margin-top: 8px'>Auth & Validate</p>
</div>
]
Step2 --> Service
Service --- Step3[
<div style='text-align: center'>
<span style='display: inline-block; background-color: #6699cc !important; color:white; width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-weight: bold'>3</span>
<p style='margin-top: 8px'>Store File</p>
</div>
]
Step3 --> Storage
Service --- Step4[
<div style='text-align: center'>
<span style='display: inline-block; background-color: #6699cc !important; color:white; width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-weight: bold'>4</span>
<p style='margin-top: 8px'>Enqueue Import</p>
</div>
]
Step4 --> Queue
Queue --> Service
Service --> Controller
Controller --> Client
%% Styling
style Client fill:#e6f3ff,stroke:#0066cc,stroke-width:2px
style Upload fill:#e6f3ff,stroke:#0066cc,stroke-width:2px
style Controller fill:#e6f3ff,stroke:#0066cc,stroke-width:2px
style Service fill:#f0f8e6,stroke:#339933,stroke-width:2px
style Storage fill:#ffe6cc,stroke:#ff9900,stroke-width:2px
style Queue fill:#ffe6cc,stroke:#ff9900,stroke-width:2px
style Step1 fill:transparent,stroke:transparent,stroke-width:1px
style Step2 fill:transparent,stroke:transparent,stroke-width:1px
style Step3 fill:transparent,stroke:transparent,stroke-width:1px
style Step4 fill:transparent,stroke:transparent,stroke-width:1px
Module List
| Name | Overview Link | Description |
|---|---|---|
| Import CSV | Import | Upload and import unique products CSV |