How prem-neupane/floci-emulator-learning-material works
The repository contains a sequence of FlociCart learning projects; the final project is a storefront for managing products and orders, with asynchronous order processing and a visible processing-status pipeline. The principal workflow is storefront → API → order storage and queue → workers → event fan-out. The final storefront also supports product and order CRUD, cached product listings, and pipeline polling. Some server-side wiring is represented by module names and documented behavior rather than sampled handler code, so uncertain internal calls are omitted.
Main entry points: index.mjs API handler · app.js Web storefront · productsCached.mjs Cached products · resources.mjs Order topic
Components 20
Storefront
- Web storefront
ep-11-complete-project/ep-11-complete-project/project/app/public/app.js - Static site hosting
ep-11-complete-project/ep-11-complete-project/project/src/config/resources.mjs
API and data
- HTTP API
- API handler
ep-11-complete-project/ep-11-complete-project/project/functions/api/index.mjs - Cached products
ep-11-complete-project/ep-11-complete-project/project/src/services/productsCached.mjs - Product cache
ep-11-complete-project/ep-11-complete-project/project/src/cache/redis.mjs - Catalog repository
ep-11-complete-project/ep-11-complete-project/project/src/repositories/catalogDdb.mjs - Catalog table
ep-11-complete-project/ep-11-complete-project/project/src/config/resources.mjs - Orders repository
ep-11-complete-project/ep-11-complete-project/project/src/repositories/ordersPg.mjs - Orders database
Async orders
- Orders queue
ep-11-complete-project/ep-11-complete-project/project/src/queues/ordersQueue.mjs - Order queue
ep-11-complete-project/ep-11-complete-project/project/src/config/resources.mjs - Orders worker
ep-11-complete-project/ep-11-complete-project/project/functions/ordersWorker/index.mjs - Order events
ep-11-complete-project/ep-11-complete-project/project/src/events/orderEvents.mjs - Order topic
ep-11-complete-project/ep-11-complete-project/project/src/config/resources.mjs - Notifications worker
ep-11-complete-project/ep-11-complete-project/project/functions/notificationsWorker/index.mjs - Analytics worker
ep-11-complete-project/ep-11-complete-project/project/functions/analyticsWorker/index.mjs
Order pipeline
- Pipeline tracking
ep-11-complete-project/ep-11-complete-project/project/src/repositories/orderPipeline.mjs - Pipeline table
ep-11-complete-project/ep-11-complete-project/project/src/config/resources.mjs
Other components
- Storefront user
Connections 21
- Storefront user → Web storefront: uses
- Web storefront → Static site hosting: loads from
- Web storefront → HTTP API: sends requests
- HTTP API → API handler: dispatches
- Web storefront → HTTP API: polls pipeline
- API handler → Cached products: serves products
- Cached products → Product cache: reads and writes
- Cached products → Catalog repository: loads products
- Catalog repository → Catalog table: reads and writes
- API handler → Orders repository: manages orders
- Orders repository → Orders database: reads and writes
- API handler → Orders queue: enqueues orders
- Orders queue → Order queue: sends jobs
- Orders worker → Order queue: consumes jobs
- Orders worker → Order events: publishes event
- Order events → Order topic: publishes
- Order topic → Notifications worker: dispatches events
- Order topic → Analytics worker: dispatches events
- Web storefront → API handler: requests stages
- API handler → Pipeline tracking: reads status
- Pipeline tracking → Pipeline table: reads and writes