How dev-adeshina/pudo works
This is a Laravel API for identity and profile management, KYC, marketplace fulfilment, ride delivery, Vride trips, and wallet operations. The principal workflow is an authenticated user entering through the DoorWay API, receiving an account/profile result, then using verified identity to access mobility, search, or wallet capabilities. Sampled code directly confirms authentication, account loading, profile upgrades, KYC submission, marketplace search/pricing, nearby-driver matching, and wallet retrieval/creation. Several listed domain services and integrations were not sampled, so their internal wiring is intentionally limited.
Main entry points: ApiResponse.php API Response · NearestRideController.php Nearby Ride · LoginController.php Login Controller · AccountController.php Account Controller
Components 25
API Access
- Login Controller
app/Http/Controllers/DoorWay/LoginController.php - Account Controller
app/Http/Controllers/General/AccountController.php - User Resource
app/Http/Resources/UserResource.php
Identity KYC
- User Account
app/Models/User.php - Profile Upgrades
app/Http/Controllers/DoorWay/Errand/ProfileUpgradeController.php - Identity Models
app/Domains/Identity/Models/Actor.php - Document KYC
app/Http/Controllers/Kyc/VerifyByDocumentController.php - KYC Action
app/Domains/Kyc/Actions/VerificationLevelTwoAction.php - KYC Services
app/Domains/Kyc/Services/DocumentVerificationService.php
Mobility Fulfilment
- Price Search
app/Http/Controllers/Search/PriceController.php - Item Catalog
app/Domains/Fulfilment/Items/Models/Item.php - Nearby Ride
app/Http/Controllers/Delivery/NearestRideController.php - Delivery Ride
app/Domains/Fulfilment/Delivery/Models/Delivery.php - Trip Controller
app/Http/Controllers/Vride/TripController.php - Trip Action
app/Domains/Vride/Actions/TripAction.php - Vride Upgrade
app/Http/Controllers/DoorWay/Vride/ProfileUpgradeController.php
Wallet Finance
- Wallet Controller
app/Http/Controllers/Wallet/WalletController.php - Wallet Service
app/Domains/Wallet/Services/WalletService.php - Wallet Store
app/Domains/Wallet/Models/Wallet.php - Wallet Onboarding
app/Domains/Wallet/Workflows/OnboardCustomer/OnboardCustomersWorkflow.php - Anchor Services
app/Domains/Wallet/Services/Anchor/AnchorCustomerService.php
Shared Platform
- Redis State
- API Response
app/Http/Responses/ApiResponse.php
Other components
- User
- Anchor Banking
Connections 37
- User → Login Controller: submits credentials
- Login Controller → User Account: reads account
- Login Controller → User Resource: formats result
- Login Controller → API Response: returns token
- User → Account Controller: requests account
- Account Controller → User Account: loads account
- Account Controller → User Resource: formats result
- Account Controller → API Response: returns profile
- User → Profile Upgrades: submits upgrade
- Profile Upgrades → User Account: checks profile
- Profile Upgrades → Identity Models: creates identity
- Profile Upgrades → API Response: returns upgrade
- User → Document KYC: submits document
- Document KYC → KYC Action: executes verification
- KYC Action → KYC Services: verifies document
- Document KYC → API Response: returns status
- User → Price Search: searches prices
- Price Search → Item Catalog: queries items
- Price Search → API Response: returns prices
- User → Nearby Ride: requests ride
- Nearby Ride → Redis State: finds nearby drivers
- Nearby Ride → Delivery Ride: creates ride
- Nearby Ride → Redis State: stores assignment
- Nearby Ride → API Response: returns ride
- User → Trip Controller: creates trip
- Trip Controller → Trip Action: executes trip
- Trip Controller → API Response: returns trip
- User → Vride Upgrade: upgrades Vride
- Vride Upgrade → User Account: checks profile
- Vride Upgrade → Identity Models: creates Vride
- Vride Upgrade → API Response: returns upgrade
- User → Wallet Controller: opens wallet
- Wallet Controller → Wallet Service: requests wallet
- Wallet Service → Wallet Store: reads or creates
- Wallet Controller → API Response: returns wallet
- Wallet Onboarding → Anchor Services: onboards customer
- Anchor Services → Anchor Banking: uses banking API