Created
June 8, 2025 14:08
-
-
Save khanhkhoktvn/55d3ccf2bc6b3b24c88308f7803a887c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @startuml | |
| '======================================================================== | |
| ' Online Food Ordering — Complete Screen Flow (57 Screens) | |
| '======================================================================== | |
| ' Use crisp right-angle connectors | |
| skinparam linetype ortho | |
| ' Add generous padding so nothing gets clipped | |
| skinparam padding 20 | |
| ' Box styling | |
| skinparam rectangle { | |
| RoundCorner 5 | |
| Shadowing false | |
| BorderColor Black | |
| BackgroundColor White | |
| } | |
| title Online Food Ordering — Complete Screen Flow | |
| '======================================================================= | |
| ' 1. Authentication (UC01–UC10) | |
| '======================================================================= | |
| package "Authentication" as AuthPkg { | |
| rectangle "UC01: Register Account" as UC01 | |
| rectangle "UC02: Login to System" as UC02 | |
| rectangle "UC03: Login with Google" as UC03 | |
| rectangle "UC04: Login with Username/Password" as UC04 | |
| rectangle "UC05: Forgot Password" as UC05 | |
| rectangle "UC06: Enter Email for OTP" as UC06 | |
| rectangle "UC08: Verify OTP" as UC08 | |
| rectangle "UC09: Enter New Password" as UC09 | |
| rectangle "UC10: Change Password" as UC10 | |
| } | |
| //======================================================================= | |
| // 2. User Profile Management (UC25–UC29) | |
| //======================================================================= | |
| package "User Profile Management" as ProfilePkg { | |
| rectangle "UC25: Change Avatar" as UC25 | |
| rectangle "UC26: Change Username" as UC26 | |
| rectangle "UC27: View Order History" as UC27 | |
| rectangle "UC28: Add to Favorites" as UC28 | |
| rectangle "UC29: Remove from Favorites" as UC29 | |
| } | |
| //======================================================================= | |
| // 3. Food Browsing (UC17–UC20, UC22, UC24) | |
| //======================================================================= | |
| package "Food Browsing" as BrowsePkg { | |
| rectangle "UC17: View Food List" as UC17 | |
| rectangle "UC18: Enter Search Keyword" as UC18 | |
| rectangle "UC19: Display Search Results" as UC19 | |
| rectangle "UC20: Select Category" as UC20 | |
| rectangle "UC22: View Food Details" as UC22 | |
| rectangle "UC24: View Current Promotions"as UC24 | |
| } | |
| //======================================================================= | |
| // 4. Ordering Process (UC30–UC34, UC42–UC44) | |
| //======================================================================= | |
| package "Ordering Process" as OrderPkg { | |
| rectangle "UC30: Select Food & Add to Cart" as UC30 | |
| rectangle "UC31: View Cart" as UC31 | |
| rectangle "UC32: Apply Discount Code" as UC32 | |
| rectangle "UC33: Apply Loyalty Points" as UC33 | |
| rectangle "UC34: Confirm Order" as UC34 | |
| rectangle "UC42: Select Delivery Time" as UC42 | |
| rectangle "UC43: Pay with Cash" as UC43 | |
| rectangle "UC44: Pay via VNPay" as UC44 | |
| } | |
| //======================================================================= | |
| // 5. Table Reservation (UC35–UC37, UC40) | |
| //======================================================================= | |
| package "Table Reservation" as TablePkg { | |
| rectangle "UC35: Select Service Time" as UC35 | |
| rectangle "UC36: Select Table" as UC36 | |
| rectangle "UC37: View Available Tables" as UC37 | |
| rectangle "UC40: Confirm Reservation" as UC40 | |
| } | |
| //======================================================================= | |
| // 6. Order Tracking & Management (UC45–UC48) | |
| //======================================================================= | |
| package "Order Tracking & Mgmt." as TrackPkg { | |
| rectangle "UC45: Track Order Status" as UC45 | |
| rectangle "UC46: Request Order Cancellation" as UC46 | |
| rectangle "UC47: Rate Food" as UC47 | |
| rectangle "UC48: Leave Feedback" as UC48 | |
| } | |
| //======================================================================= | |
| // 7. Delivery Management (UC53–UC58) | |
| //======================================================================= | |
| package "Delivery Management" as DeliveryPkg { | |
| rectangle "UC53: View Prepared Orders" as UC53 | |
| rectangle "UC54: Accept Order" as UC54 | |
| rectangle "UC55: View Received/Delivered" as UC55 | |
| rectangle "UC56: View Order Details" as UC56 | |
| rectangle "UC57: Mark Delivered" as UC57 | |
| rectangle "UC58: Mark Delivery Failed" as UC58 | |
| } | |
| //======================================================================= | |
| // 8. Kitchen Management (UC59–UC60) | |
| //======================================================================= | |
| package "Kitchen Management" as KitchenPkg { | |
| rectangle "UC59: View Preparing Orders" as UC59 | |
| rectangle "UC60: Mark as Prepared" as UC60 | |
| } | |
| //======================================================================= | |
| // 9. Admin Management (UC61–UC102) | |
| //======================================================================= | |
| package "Admin Management" as AdminPkg { | |
| rectangle "UC61: View User & Shipper Accounts" as UC61 | |
| rectangle "UC62: Create Shipper Account" as UC62 | |
| rectangle "UC63: Create Kitchen Manager Account" as UC63 | |
| rectangle "UC64: Lock User Account" as UC64 | |
| rectangle "UC65: Unlock User Account" as UC65 | |
| rectangle "UC66: Add Food Item" as UC66 | |
| rectangle "UC67: Edit Food Item" as UC67 | |
| rectangle "UC68: Delete Food Item" as UC68 | |
| rectangle "UC69: Add Food Category" as UC69 | |
| rectangle "UC70: Edit Food Category" as UC70 | |
| rectangle "UC71: Delete Food Category" as UC71 | |
| rectangle "UC72: View Orders List" as UC72 | |
| rectangle "UC73: Approve Order" as UC73 | |
| rectangle "UC74: Edit Order" as UC74 | |
| rectangle "UC75: Review Cancellation Request" as UC75 | |
| rectangle "UC76: Change to Preparing" as UC76 | |
| rectangle "UC77: Change to Delivering" as UC77 | |
| rectangle "UC78: Change to Cancelled" as UC78 | |
| rectangle "UC79: View Shipper List" as UC79 | |
| rectangle "UC80: Assign Order to Shipper" as UC80 | |
| rectangle "UC81: View Table Plan" as UC81 | |
| rectangle "UC82: Block Table" as UC82 | |
| rectangle "UC83: Approve Reservation" as UC83 | |
| rectangle "UC84: Modify Reservation" as UC84 | |
| rectangle "UC85: Cancel Reservation" as UC85 | |
| rectangle "UC86: Generate QR Code" as UC86 | |
| rectangle "UC87: Create Discount Code" as UC87 | |
| rectangle "UC88: Edit Discount Code" as UC88 | |
| rectangle "UC89: Delete Discount Code" as UC89 | |
| rectangle "UC90: View Discount Usage" as UC90 | |
| rectangle "UC91: View Expired Discounts" as UC91 | |
| rectangle "UC92: Configure Points Conversion" as UC92 | |
| rectangle "UC93: (skip/unused)" as UC93 | |
| rectangle "UC94: Configure Redemption Values" as UC94 | |
| rectangle "UC95: View Food Reviews" as UC95 | |
| rectangle "UC96: Respond to Reviews" as UC96 | |
| rectangle "UC97: Delete Comment" as UC97 | |
| rectangle "UC98: Sales Report" as UC98 | |
| rectangle "UC99: User Activity Report" as UC99 | |
| rectangle "UC100: Inventory Report" as UC100 | |
| rectangle "UC101: Revenue Report" as UC101 | |
| rectangle "UC102: Cancelled Orders Report" as UC102 | |
| } | |
| '======================================================================= | |
| ' Key inter-module transitions | |
| ' (adjust these if you need per‐screen rather than package‐level flows) | |
| '======================================================================= | |
| UC10 --> UC17 // After changing password, user can start browsing | |
| UC22 --> UC30 // From Food Details to Add-to-Cart | |
| UC40 --> UC30 // From Reservation to Ordering | |
| UC27 --> UC30 // From Order History “Reorder” to Ordering | |
| UC34 --> UC45 // After Confirm Order → Track Order | |
| UC46 --> UC53 // Cancel Request → Shipper View | |
| UC57 --> UC59 // Delivery completed → Kitchen sees new preparing jobs | |
| AdminPkg --> UC01 // Admin can jump into Authentication (and thus all) | |
| @enduml |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment