How ravibaskey/crm-system works
This repository is a small Express CRM backend centered on authentication, user administration, and support tickets. Clients enter through route modules, which apply request validation and authentication/authorization middleware before invoking controllers; controllers read and update user or ticket records and shape responses where needed. Ticket handling includes role-based visibility and automatic assignment to an approved engineer. The README provides no additional capability detail, and the sampled sources do not establish database connection setup or comment workflows, so those are not mapped.
Main entry points: constants.js Domain Constants · user.model.js User Records · authjwt.js JWT and Admin Checks · user.routes.js User Routes
Components 17
API Routing
- Auth Routes
routes/auth.routes.js - User Routes
routes/user.routes.js - Ticket Routes
routes/ticket.routes.js
Identity and Access
- Signup and Signin
controllers/auth.controller.js - Signup Validation
middlewares/verifyUserreqBody.js - JWT and Admin Checks
middlewares/authjwt.js - JWT Configuration
configs/auth.config
User Administration
- User Operations
controllers/user.controller.js - User Update Validation
middlewares/verifyUserreqBody.js - User Records
models/user.model.js - User Response Mapping
utils/objectConverter.js
Ticket Management
- Ticket Operations
controllers/ticket.controller.js - Ticket Request Validation
middlewares/verifyTicketRequestBody.js - Ticket Records
models/ticket.model.js - Comment Model
models/comment.model.js
Shared Domain
- Domain Constants
utils/constants.js
Other components
- API Client
Connections 28
- API Client → Auth Routes: calls auth endpoints
routes/auth.routes.js - API Client → User Routes: calls user endpoints
routes/user.routes.js - API Client → Ticket Routes: calls ticket endpoints
routes/ticket.routes.js - Auth Routes → Signup Validation: validates signup
routes/auth.routes.js - Auth Routes → Signup and Signin: dispatches auth
routes/auth.routes.js - User Routes → JWT and Admin Checks: checks access
routes/user.routes.js - User Routes → User Update Validation: validates updates
routes/user.routes.js - User Routes → User Operations: dispatches users
routes/user.routes.js - Ticket Routes → JWT and Admin Checks: checks token
routes/ticket.routes.js - Ticket Routes → Ticket Request Validation: validates requests
routes/ticket.routes.js - Ticket Routes → Ticket Operations: dispatches tickets
routes/ticket.routes.js - Signup Validation → User Records: checks duplicates
middlewares/verifyUserreqBody.js - Signup Validation → Domain Constants: checks user types
middlewares/verifyUserreqBody.js - User Update Validation → Domain Constants: checks allowed values
middlewares/verifyUserreqBody.js - JWT and Admin Checks → JWT Configuration: verifies with secret
middlewares/authjwt.js - JWT and Admin Checks → User Records: looks up role
middlewares/authjwt.js - JWT and Admin Checks → Domain Constants: checks admin role
middlewares/authjwt.js - Signup and Signin → User Records: creates and reads
controllers/auth.controller.js - Signup and Signin → JWT Configuration: signs token
controllers/auth.controller.js - Signup and Signin → Domain Constants: sets account status
controllers/auth.controller.js - User Operations → User Records: reads and updates
controllers/user.controller.js - User Operations → User Response Mapping: formats user results
controllers/user.controller.js - Ticket Operations → User Records: checks requester and assignee
controllers/ticket.controller.js - Ticket Operations → Ticket Records: creates and queries
controllers/ticket.controller.js - Ticket Operations → Domain Constants: checks roles and status
controllers/ticket.controller.js - Ticket Request Validation → Domain Constants: checks ticket values
middlewares/verifyTicketRequestBody.js - User Records → Domain Constants: defines role enums
models/user.model.js - Ticket Records → Domain Constants: defines default status
models/ticket.model.js