UCP Commerce Admin UI
Samantha Zheng (intern),
Vivek Singhai (manager), Todd Sieland-Peterson (mentor)
August 2024
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Content
About me
My team: UCP-Commerce
Project Mission
Project Deliverable
Project Evolution
Summer Experience
Contents
2
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Unified Commerce Platform
UCP Engineering team
team service ownership
3
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Unified Commerce Platform
UCP Engineering team
4
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Project Mission
5
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
What is an Admin UI
An admin UI (administrative user interface) is a part of a software application designed specifically for administrators to manage and configure various aspects of the system.
What is an admin UI
Database management
Website management
6
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Avoid the pain of manually executing many Postman requests to remove duplicate promotion entries.
Motivation
Easier bulk modification
Provide a way to list all locations associated with a merchant, so developers don’t have to manually trace location associations from JSON outputs.
See relationships between data
Improve the visualization of data entities, making it easier to review a data entity, without having to sift through JSON strings or the database.
Visualize data object JSON
Motivation
X 10,000
merchant
Location 1
Location 2
Location 3
Location 4
7
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Frontend Migration
Per user request,
Spring Boot + Thymeleaf + HTML
Spring Boot + React
Per user request,
Before:
After:
8
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Project Deliverables
9
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Home
Screens
Promotions
Locations
Screens
Merchants
10
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
11
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Table and pagination
Homepage and
page navigation
12
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Promotions Screen
Promotions Screen
Sort
Sort the list of promotions by any column in ascending or descending order
Implementation: custom hook to manage sort config with `useState`,and Javascript `Array.prototype.sort()` for sorting.
Search
Search for promotions based on specific fields
Implementation: `useState`to store the search term, and ` Array.prototype.filter()` for filtering.
Bulk select and Edit
Select multiple or all promotions from the list and perform bulk actions (enabling or disabling them)
Implementation: custom hook to handle row selection, TanStack `useMutation` for query to backend to edit data.
Cleanup duplicates
Remove redundant promotions to maintain a clean database
Implementation: `Array.prototype.reduce()`for computing duplicates, TanStack `useMutation` for query to backend to delete data.
13
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Table in the old UI
14
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Table and pagination
15
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Sorting
Sort the list of promotions by any column in ascending or descending order.
16
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Searching in the old UI
17
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Searching
Search for promotions that matches a certain user input on any of the fields
18
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Enable or disable promotions
Select multiple or all promotions from the list and perform bulk actions (enabling or disabling them)
19
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Cleanup duplicates�
Clean up duplicates
Remove duplicated promotions to ensure each promotion has a unique combination of discount code and discount ID.
20
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Detail page for a single promotion
Spring. boot
21
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Detail page
Detail page comparison
22
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Locations Screen
Locations Screen
Sort
Sort the list of locations by any column in ascending or descending order.
Implementation: custom hook to manage sort config with `useState`,and Javascript `Array.prototype.sort()` for sorting.
Search
Search for locations based on specific fields.
Implementation: `useState`to store the search term, and ` Array.prototype.filter()` for filtering.
Advanced Search
Search using specific fields, with dropdown selections for 'State' and 'Country' that automatically synchronize.
Implementation: `Array.prototype.reduce()` to compile select options for dropdowns, and `useEffect` hook to update the ‘Country' field when a 'State' is selected.
23
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Advanced Search
Searching with specific fields, with auto-filling for states and country
24
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Advanced Search
Combined with general search
25
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Merchants Screen
Merchants Screen
Sort
Sort the list of merchants by any column in ascending or descending order.
Implementation: custom hook to manage sort config with `useState`,and Javascript `Array.prototype.sort()` for sorting.
Search
Search for merchants based on specific fields.
Implementation: `useState`to store the search term, and ` Array.prototype.filter()` for filtering.
List of merchant locations
Display a list of locations under the merchant.
Implementation: Tanstack `useQuery` to query the database for the list, data display similar to locations screen.
26
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Merchant locations
Connecting merchants with locations
27
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Impact
Impact
Made the below future functionalities possible:
28
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Project Evolution
29
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Project timeline
Computer and tools setup,
Getting authorized to use S4 components library,
Locally running the backend.
Setup, authorization
Deploy the service to lower environment and monitor the condition of the pods.
Set up environment variables and proxies to enable backend calls.
Deployment to lower env
Give developers instructions for coding, deploying and running the application.
Writing documentation
Writing unit tests
Writing unit tests that runs per code push to GitHub to ensure that all page components function correctly.
Frontend development
Clarify the objectives before beginning to code. Provide updates during daily stand-up meetings and maintain regular check-ins with mentor or manager to receive feedback
Code cleanup
Remove log statements, commented out codes and unused files to keep the code base clean.
30
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Summer Experience
favorite band
Riichi mahjong
hiking
Hack week
overpriced food
paddleboarding
31
|
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY
Thank you.
© 2024 Starbucks Corporation. CONFIDENTIAL / FOR INTERNAL USE ONLY