How div641/flexpay works
FlexPay is a smartphone shopping application: shoppers browse and filter products, open a slug-based product page, choose a variant, review its EMI options, select a plan, and proceed through confirmation. The graph follows the documented React-to-REST-to-PostgreSQL architecture and sampled backend handlers/services. Some frontend page and component wiring is based on the README and file names; unsampled implementation details are not inferred.
Main entry points: ProductDetailsPage.jsx Product details · ProductsPage.jsx Browse products · app.js Express app · api.js API client
Components 23
Shopping frontend
- App and routing
Frontend/src/App.jsx - Browse products
Frontend/src/pages/ProductsPage.jsx - Product cards
Frontend/src/components/ProductCard.jsx - Search and filters
Frontend/src/components/SidebarFilters.jsx - Product details
Frontend/src/pages/ProductDetailsPage.jsx - Product gallery
Frontend/src/components/ProductGallery.jsx - Variant selection
Frontend/src/components/VariantSelector.jsx - EMI plan selection
Frontend/src/components/EmiPlanCard.jsx - API client
Frontend/src/services/api.js
REST API
- Express app
Backend/src/app.js - Product routes
Backend/src/routes/product.routes.js - Product controller
Backend/src/controllers/product.controller.js - Product queries
Backend/src/services/product.service.js - Variant routes
Backend/src/routes/variant.routes.js - Variant controller
Backend/src/controllers/variant.controller.js - Variant queries
Backend/src/services/variant.service.js - EMI routes
Backend/src/routes/emi.routes.js - EMI controller
Backend/src/controllers/emi.controller.js - EMI queries
Backend/src/services/emi.service.js
Product data
- Database connection
Backend/src/config/db.js - Relational schema
Backend/src/db/schema.sql
Other components
- Shopper
- PostgreSQL
Connections 26
- Shopper → App and routing: uses
- App and routing → Browse products: routes to
- App and routing → Product details: routes to
- Browse products → Search and filters: offers filters
- Browse products → API client: requests products
- API client → Product cards: supplies data
- Browse products → Product cards: renders
- Product details → API client: requests details
- Product details → Product gallery: renders
- Product details → Variant selection: renders
- Product details → EMI plan selection: renders plans
- API client → Express app: calls REST API
- Express app → Product routes: mounts routes
- Express app → Variant routes: mounts routes
- Express app → EMI routes: mounts routes
- Product routes → Product controller: dispatches
- Product controller → Product queries: calls
- Variant routes → Variant controller: dispatches
- Variant controller → Variant queries: calls
- EMI routes → EMI controller: dispatches
- EMI controller → EMI queries: calls
- Product queries → Database connection: queries through
- Variant queries → Database connection: queries through
- EMI queries → Database connection: queries through
- Database connection → PostgreSQL: connects to
- Relational schema → PostgreSQL: defines tables