How johnitopaisah/ecommerce-platform works
ShopNow is an e-commerce platform with a customer storefront and a separate admin panel backed by a Django REST API. The customer workflow spans account access, product discovery, a persistent basket, checkout, payment, and order history; administrators manage catalog, orders, and users. The API routes requests to domain handlers, which use domain models and supporting services. The README documents PostgreSQL, Redis, and Stripe; some storage and payment implementation details were not sampled, so those connections are documented or marked unverified rather than inferred from code.
Main entry points: urls.py API Route Configuration · views.py Order Lifecycle · services.ts Customer API Services · models.py Catalog Models
Components 21
Customer Storefront
- Storefront Pages
user-ui/src/app - Basket and Checkout
user-ui/src/app/basket/page.tsx - Account Pages
user-ui/src/app/account - Customer API Services
user-ui/src/lib/services.ts
Admin Panel
- Admin Screens
admin-ui/src/app/(admin) - Admin API Services
admin-ui/src/lib/services.ts
API and Domain
- API Route Configuration
api/config/urls.py - Account and Authentication
api/apps/account/views.py - Catalog and Inventory
api/apps/store/views.py - Catalog Administration
api/apps/store/admin_views.py - Basket Operations
api/apps/basket/service.py - Order Lifecycle
api/apps/orders/views.py - Manual Payment Confirmation
api/apps/orders/admin_views.py - Payment Integration
api/apps/payment/views.py - Catalog Models
api/apps/store/models.py - Email Service
api/apps/core/email.py
Persistence and Integrations
- PostgreSQL
- Redis Basket Store
- Stripe
Other components
- Shopper
- Administrator
Connections 26
- Shopper → Storefront Pages: browses
README.md - Shopper → Basket and Checkout: checks out
README.md - Shopper → Account Pages: manages account
README.md - Administrator → Admin Screens: manages store
README.md - Storefront Pages → Customer API Services: requests data
user-ui/src/lib/services.ts - Basket and Checkout → Customer API Services: requests basket and orders
user-ui/src/lib/services.ts - Account Pages → Customer API Services: requests account
user-ui/src/lib/services.ts - Customer API Services → API Route Configuration: calls API endpoints
user-ui/src/lib/services.ts - Admin Screens → Admin API Services: requests admin actions
admin-ui/src/app/(admin)/orders/page.tsx - Admin API Services → API Route Configuration: calls API endpoints
- API Route Configuration → Account and Authentication: routes auth
api/config/urls.py - API Route Configuration → Catalog and Inventory: routes catalog
api/config/urls.py - API Route Configuration → Catalog Administration: routes catalog admin
api/config/urls.py - API Route Configuration → Order Lifecycle: routes orders
api/config/urls.py - API Route Configuration → Manual Payment Confirmation: routes payment confirmation
api/config/urls.py - API Route Configuration → Payment Integration: routes payment
api/config/urls.py - Order Lifecycle → Basket Operations: reads basket summary
api/apps/orders/views.py - Order Lifecycle → Email Service: sends confirmation
api/apps/orders/views.py - Account and Authentication → Email Service: sends account mail
api/apps/account/views.py - Catalog and Inventory → Catalog Models: queries catalog
api/apps/store/views.py - Catalog Administration → Catalog Models: manages catalog records
api/apps/store/admin_views.py - Basket Operations → Catalog Models: loads product details
api/apps/basket/service.py - Catalog Models → PostgreSQL: persists catalog
- Basket Operations → Redis Basket Store: reads and writes basket
- Payment Integration → Stripe: processes payments
README.md - Manual Payment Confirmation → Order Lifecycle: updates order status
api/apps/orders/admin_views.py