How tuan03/ffp_tool works
FFP Tool is a React single-page app that demonstrates a modular business workflow. The user starts the sample workflow on the home page; the app selects real or mock module runners, then the orchestrator runs Module A before running Modules B and C concurrently and returns their outputs for display. The README also documents routing, environment-based mock mode, and module contracts. Service behavior is sampled; mock selection and several routing details are documented but their implementation was not sampled.
Main entry points: workflow.ts Workflow wiring · service.ts Workflow orchestrator · HomePage.tsx Home page · App.tsx App composition
Components 19
Application
- Application entry
src/main.tsx - App composition
src/app/App.tsx - Routes
src/app/routes/AppRoutes.tsx - App layout
src/layouts/AppLayout.tsx - Home page
src/pages/home/HomePage.tsx - Environment config
src/config/environment.ts
Workflow
- Workflow wiring
src/app/runtime/workflow.ts - Workflow orchestrator
src/modules/orchestrator/service.ts
Business modules
- Module A
src/modules/module-a/service.ts - Module A runner
src/modules/module-a/runtime.ts - Module A mock
src/modules/module-a/mocks/runner.ts - Module B
src/modules/module-b/service.ts - Module B runner
src/modules/module-b/runtime.ts - Module B mock
src/modules/module-b/mocks/runner.ts - Module C
src/modules/module-c/service.ts - Module C runner
src/modules/module-c/runtime.ts - Module C mock
src/modules/module-c/mocks/runner.ts
Shared contracts
- App errors
src/shared/errors/app-error.ts
Other components
- User
Connections 25
- User → Home page: starts workflow
- Application entry → App composition: renders
- App composition → Routes: renders
- App composition → Workflow wiring: provides runner
- Routes → App layout: uses layout
- Routes → Home page: renders
- App layout → Environment config: reads environment
- Home page → Workflow wiring: runs workflow
- Workflow wiring → Environment config: reads environment
- Workflow wiring → Module A runner: selects runner
- Workflow wiring → Module B runner: selects runner
- Workflow wiring → Module C runner: selects runner
- Workflow wiring → Workflow orchestrator: creates runner
- Module A runner → Module A: selects real runner
- Module A runner → Module A mock: selects mock runner
- Module B runner → Module B: selects real runner
- Module B runner → Module B mock: selects mock runner
- Module C runner → Module C: selects real runner
- Module C runner → Module C mock: selects mock runner
- Workflow orchestrator → Module A: runs first
- Workflow orchestrator → Module B: runs concurrently
- Workflow orchestrator → Module C: runs concurrently
- Workflow orchestrator → App errors: wraps failures
- Workflow orchestrator → Workflow wiring: returns outputs
- Workflow wiring → Home page: returns result