How mryamusa/fastapi-shipmentservice works
This is a FastAPI shipment-management API. Sellers create shipments, which are assigned to delivery partners and recorded with an initial timeline event; partners can update shipment progress, while sellers can retrieve or cancel shipments. Status events trigger customer email notifications. Seller and partner routes, authentication dependencies, persistence, and notification handling form supporting workflows. The sampled source shows shipment and seller route behavior; delivery-partner route details and several services were not sampled, so their internal behavior is not expanded.
Main entry points: routers/shipment.py Shipment routes · dependencies.py API dependencies · router.py Master router · services/shipment.py Shipment service
Components 23
API and identity
- FastAPI application
app/main.py - Master router
app/api/router.py - Shipment routes
app/api/routers/shipment.py - Seller routes
app/api/routers/seller.py - Partner routes
app/api/routers/delivery_partner.py - API dependencies
app/api/dependencies.py - Token security
app/core/security.py - Token decoding
app/utils.py
Shipment lifecycle
- Shipment service
app/services/shipment.py - Shipment events
app/services/shipment_event.py - Shipment schemas
app/api/schemas/shipment.py
Seller and partner
- Seller service
app/services/seller.py - Partner service
app/services/delivery_partner.py
Persistence and notifications
- Domain models
app/database/models.py - Database sessions
app/database/session.py - PostgreSQL
- Token blacklist
app/database/redis.py - Email notifications
app/services/notifications.py - Email templates
app/templates
Other components
- Seller
- Delivery partner
- Shipment customer
- Email service
Connections 26
- FastAPI application → Database sessions: creates tables
- FastAPI application → Master router: mounts routes
- Master router → Shipment routes: includes
- Master router → Seller routes: includes
- Master router → Partner routes: includes
- Seller → Seller routes: requests
- Delivery partner → Partner routes: requests
- Seller → Shipment routes: creates or cancels
- Delivery partner → Shipment routes: updates
- Shipment routes → Shipment service: invokes
- Shipment routes → Shipment schemas: validates
- Shipment service → Partner service: assigns partner
- Shipment service → Shipment events: records events
- Shipment service → Domain models: creates shipment
- Shipment events → Domain models: creates event
- Shipment events → Email notifications: sends status email
- Email notifications → Email templates: renders
- Email notifications → Email service: sends email
- Shipment customer → Email notifications: receives updates
- Seller routes → Seller service: invokes
- Seller routes → Token blacklist: blacklists token
- API dependencies → Token security: uses schemes
- API dependencies → Token decoding: decodes token
- API dependencies → Token blacklist: checks blacklist
- API dependencies → Database sessions: opens session
- Database sessions → PostgreSQL: connects