How dungdinhhaha/ecommerce-skillhub works
SkillHub is a marketplace for skill services and digital products. Users browse listings, create or buy gigs, pay, exchange messages, receive deliveries, and manage orders; sellers manage listings and earnings, while administrators moderate marketplace activity. The React client routes users to these workflows and calls the Express API. Sampled source confirms order, review, authentication, and administrative data handling; other listed capabilities are represented at subsystem level where their implementations were not excerpted.
Main entry points: admin.controller.js Admin operations · routes.utils.jsx Page routing · server.js Express API · order.controller.js Order lifecycle
Components 23
Marketplace client
- React application
client/src/App.jsx - Page routing
client/src/utils/routes.utils.jsx - Browse and search
client/src/pages/gigs/Gigs.jsx - Gig details
client/src/pages/gig/Gig.jsx - Seller workspace
client/src/pages/add/Add.jsx - Buyer orders
client/src/pages/orders/Orders.jsx - Messaging
client/src/pages/messages/Messages.jsx - API request helper
client/src/utils/request.utils.js
API and identity
- Express API
server/server.js - Authentication
server/controllers/auth.controller.js - Identity records
server/models/user.model.js
Marketplace domain
- Gig catalog
server/controllers/gig.controller.js - Gig records
server/models/gig.model.js - Reviews
server/controllers/review.controller.js
Orders and finance
- Order lifecycle
server/controllers/order.controller.js - Order records
server/models/order.model.js - Refund records
server/models/refund.model.js - Wallet and payouts
server/controllers/wallet.controller.js - Withdrawal records
server/models/withdrawal.model.js
Administration
- Admin operations
server/controllers/admin.controller.js - Voucher management
server/controllers/voucher.controller.js
Other components
- Marketplace user
- MongoDB
Connections 31
- Marketplace user → React application: uses
- React application → Page routing: loads routes
client/src/App.jsx - Page routing → Browse and search: routes to
client/src/utils/routes.utils.jsx - Page routing → Gig details: routes to
client/src/utils/routes.utils.jsx - Page routing → Seller workspace: routes to
client/src/utils/routes.utils.jsx - Page routing → Buyer orders: routes to
client/src/utils/routes.utils.jsx - Page routing → Messaging: routes to
client/src/utils/routes.utils.jsx - Browse and search → API request helper: fetches data
- Gig details → API request helper: fetches data
- Buyer orders → API request helper: calls API
- API request helper → Express API: sends requests
- Express API → Authentication: routes auth
server/server.js - Express API → Gig catalog: routes gigs
server/server.js - Express API → Admin operations: routes admin
server/server.js - Authentication → Identity records: reads and writes
server/controllers/auth.controller.js - Gig catalog → Gig records: reads and writes
server/controllers/gig.controller.js - Reviews → Gig records: updates ratings
server/controllers/review.controller.js - Reviews → Order records: checks completion
server/controllers/review.controller.js - Order lifecycle → Gig records: loads listing
server/controllers/order.controller.js - Order lifecycle → Order records: reads and writes
server/controllers/order.controller.js - Order lifecycle → Identity records: loads users
server/controllers/order.controller.js - Order lifecycle → Refund records: uses refunds
server/controllers/order.controller.js - Wallet and payouts → Order records: reads orders
server/controllers/wallet.controller.js - Wallet and payouts → Withdrawal records: reads and writes
server/controllers/wallet.controller.js - Admin operations → Gig records: moderates listings
server/controllers/admin.controller.js - Admin operations → Order records: manages orders
server/controllers/admin.controller.js - Admin operations → Identity records: manages users
server/controllers/admin.controller.js - Admin operations → Withdrawal records: manages payouts
server/controllers/admin.controller.js - Admin operations → Refund records: manages refunds
server/controllers/admin.controller.js - Admin operations → Voucher management: manages vouchers
server/controllers/admin.controller.js - Express API → MongoDB: connects database
server/server.js