How mehedi-m/supershop_pos_system works
This is a Super Shop API centered on business setup and account lifecycle: clients submit setup or registration requests, admins review pending users, and approved users can log in for token-based access. Authentication routes are the only sampled route family; the tree and source index also show organization, session, role, and access-control components, but do not establish broader business workflows. Edges reflect the sampled route wiring and service references; unsampled behavior is not inferred.
Main entry points: auth.service.js Auth service · auth.routes.js Auth routes · app.js Express app · server.js Server startup
Components 24
API and routing
- Express app
src/app.js - Route index
src/routes/index.js - Auth routes
src/routes/auth.routes.js - Auth validation
src/validations/auth.validation.js - Async handler
src/utils/async-handler.js
Identity workflows
- Auth controller
src/controllers/auth.controller.js - Auth service
src/services/auth.service.js - Authentication
src/middlewares/auth.middleware.js - Role checks
src/middlewares/role.middleware.js - Token utilities
src/utils/token.js - Cookie options
src/utils/cookie.js - Sessions
src/models/session.model.js
Organization and access
- Permissions
src/constants/permission.js - Branch access
src/middlewares/brach-access.middleware.js - Counter access
src/middlewares/counter-access.middleware.js - Users
src/models/user.model.js - Businesses
src/models/business.model.js - Branches
src/models/branch.model.js - Counters
src/models/counter.model.js - Cashiers
src/models/cashier.model.js
Runtime and persistence
- Server startup
src/server.js - Database connector
src/config/db.js - Environment config
src/config/env.js
Other components
- API client
Connections 25
- API client → Express app: sends requests
- Express app → Route index: mounts API routes
src/app.js - Route index → Auth routes: registers routes
src/routes/index.js - Auth routes → Auth controller: dispatches requests
src/routes/auth.routes.js - Auth routes → Auth validation: validates input
src/routes/auth.routes.js - Auth routes → Authentication: authenticates protected routes
src/routes/auth.routes.js - Auth routes → Role checks: checks admin role
src/routes/auth.routes.js - Auth routes → Async handler: wraps handlers
src/routes/auth.routes.js - Auth controller → Auth service: calls workflows
src/controllers/auth.controller.js - Auth controller → Cookie options: sets refresh cookie
src/controllers/auth.controller.js - Auth service → Users: reads and writes users
src/services/auth.service.js - Auth service → Businesses: creates business
src/services/auth.service.js - Auth service → Sessions: creates sessions
src/services/auth.service.js - Auth service → Branches: checks and assigns branches
src/services/auth.service.js - Auth service → Counters: checks and assigns counters
src/services/auth.service.js - Auth service → Token utilities: generates and hashes tokens
src/services/auth.service.js - Authentication → Users: loads user
src/middlewares/auth.middleware.js - Branch access → Counters: checks counter
src/middlewares/brach-access.middleware.js - Branch access → Branches: checks branch
src/middlewares/brach-access.middleware.js - Counter access → Counters: checks counter
src/middlewares/counter-access.middleware.js - Server startup → Express app: starts server
src/server.js - Server startup → Database connector: connects before listen
src/server.js - Server startup → Environment config: reads settings
src/server.js - Express app → Environment config: configures CORS
src/app.js - Database connector → Environment config: reads database settings
src/config/db.js