brotherrabbit91 / Courier-Exchange-Platform

Laravel Multi-vendor Courier Exchange Platform. This platform will allow Couriers, Shippers, and Admins to interact seamlessly.
0 stars 0 forks source link

Function Key Points #6

Open brotherrabbit91 opened 3 weeks ago

brotherrabbit91 commented 3 weeks ago
brotherrabbit91 commented 3 weeks ago
brotherrabbit91 commented 3 weeks ago

Booking and Tracking System Multi-vendor system: Shipper, Admin, Courier

brotherrabbit91 commented 3 weeks ago

Booking and Tracking System Multi-vendor system: Shipper, Admin, Courier

brotherrabbit91 commented 3 weeks ago

@startuml left to right direction

actor Courier actor Shipper actor Admin

rectangle "Multi-Vendor Courier Exchange Platform" { usecase "Register Account" as UC1 usecase "Book Delivery" as UC2 usecase "Track Delivery" as UC3 usecase "Manage Users" as UC4 usecase "Verify Business" as UC5 usecase "Post Load" as UC6 usecase "Bid on Load" as UC7 usecase "Search Loads" as UC8 usecase "Search Vehicles" as UC9 usecase "View Company Profile" as UC10 usecase "Export Job Data" as UC11 }

Courier --> UC1 : Registers with details Courier --> UC2 : Books a delivery Courier --> UC3 : Tracks delivery status Courier --> UC7 : Bids on loads Courier --> UC8 : Searches for loads Courier --> UC9 : Searches for vehicles Courier --> UC11 : Exports job data

Shipper --> UC1 : Registers with details Shipper --> UC2 : Books a delivery Shipper --> UC3 : Tracks delivery status Shipper --> UC6 : Posts loads for bidding

Admin --> UC4 : Manages user accounts Admin --> UC5 : Verifies business legitimacy Admin --> UC10 : Views company profiles @enduml

brotherrabbit91 commented 3 weeks ago

@startuml left to right direction

actor Courier actor Shipper actor Admin

rectangle "Logistics System" { rectangle "API Client Library" { rectangle "Logistics.Client" }

rectangle "HTTP API" {
    rectangle "Logistics.API"
}

rectangle "Application Layers" {
    rectangle "Tenant Application Layer" {
        rectangle "Logistics.Application.Tenant"
    }
    rectangle "Admin Application Layer" {
        rectangle "Logistics.Application.Admin"
    }
    rectangle "Common Application Layer" {
        rectangle "Logistics.Application.Common"
    }
}

rectangle "Shared Libraries" {
    rectangle "Logistics.Shared"
    rectangle "Logistics.Models"
}

rectangle "Domain" {
    rectangle "Logistics.Domain"
}

rectangle "Infrastructure Layer" {
    rectangle "Logistics.Infrastructure.EF"
}

rectangle "Identity Server" {
    rectangle "Logistics.IdentityServer"
}

}

Courier --> "Logistics.API" : Sends requests Shipper --> "Logistics.API" : Sends requests Admin --> "Logistics.API" : Sends requests

"Logistics.API" --> "Logistics.Application.Tenant" : Handles tenant requests "Logistics.API" --> "Logistics.Application.Admin" : Handles admin requests "Logistics.Application.Tenant" --> "Logistics.Shared" : Uses shared classes "Logistics.Application.Admin" --> "Logistics.Shared" : Uses shared classes "Logistics.Application.Common" --> "Logistics.Shared" : Uses shared classes "Logistics.Application.Common" --> "Logistics.Models" : Uses DTO classes "Logistics.Infrastructure.EF" --> "Logistics.Domain" : Interacts with domain entities "Logistics.IdentityServer" --> "Logistics.API" : Authenticates users

@enduml