How uti-sai/test-ims works
Billing Monitor is an Express/MongoDB application for user and billing administration, invoice/RPA processing, and email notifications. Its main operational path is API invoice handling: the API controller checks RPA logs, can look up invoice data from SQL Server and persist logs in MongoDB, then creates billing records and queues invoice email; callers can query email-task status. Separate web routes support authentication, billing review and rejection, and rejected-invoice email settings. Source evidence is partial, so unsampled route behavior and internal controller details are not expanded.
Main entry points: api.js Invoice API handling · app.js Express app · sendEmail.js Email dispatch · billing.js Billing management
Components 28
Web access
- Express app
app.js - Auth routes
routes/auth.js - Authentication
controllers/auth.js - Access checks
middleware/auth.js - Passport config
passport-config.js - User model
models/User.js
Invoice processing
- Invoice API routes
routes/api.js - Invoice API handling
controllers/api.js - RPA invoice lookup
helpers/logRPA/lookUpRPA.js - Email extraction
helpers/extractEmails.js
Billing operations
- Billing routes
routes/billing.js - Billing management
controllers/billing.js - Billing model
models/Billing.js - Rejected-email routes
routes/rejectedInvoiceEmail.js - Rejected-email settings
controllers/rejectedInvoiceEmail.js - Rejected-email model
models/RejectedInvoiceEmail.js - Email settings parser
helpers/parseExcelEmailSettings.js - Query string helper
helpers/createQueryString.js
Email delivery
- Invoice email setup
helpers/sendInvoiceRPA.js - Queue management
helpers/emailQueue.js - Email dispatch
helpers/sendEmail.js - Mongo email queue
queue/emailQueue.js - Email worker
worker/index.js
Other components
- Web user
- API client
- RPA SQL Server
- MongoDB
- SMTP service
Connections 36
- Express app → Auth routes: mounts
app.js - Express app → Invoice API routes: mounts
app.js - Express app → Billing routes: mounts
app.js - Express app → Rejected-email routes: mounts
app.js - Express app → Queue management: starts manager
app.js - Web user → Auth routes: uses
- API client → Invoice API routes: calls
routes/api.js - Auth routes → Authentication: dispatches
routes/auth.js - Auth routes → Access checks: checks access
routes/auth.js - Authentication → User model: reads and updates
controllers/auth.js - Authentication → Passport config: authenticates
controllers/auth.js - Passport config → User model: loads user
passport-config.js - Invoice API routes → Access checks: checks keys and roles
routes/api.js - Invoice API routes → Invoice API handling: dispatches
routes/api.js - Invoice API handling → RPA invoice lookup: looks up missing logs
controllers/api.js - RPA invoice lookup → RPA SQL Server: queries invoices
helpers/logRPA/lookUpRPA.js - RPA invoice lookup → MongoDB: stores RPA logs
helpers/logRPA/lookUpRPA.js - Invoice API handling → MongoDB: reads and updates logs
controllers/api.js - Invoice API handling → Email extraction: extracts addresses
controllers/api.js - Invoice API handling → Billing model: creates billing records
controllers/api.js - Invoice API handling → Invoice email setup: prepares invoice email
controllers/api.js - Invoice email setup → Email dispatch: sends through
helpers/sendInvoiceRPA.js - Billing routes → Access checks: checks access
routes/billing.js - Billing routes → Billing management: dispatches
routes/billing.js - Billing management → MongoDB: queries billing data
controllers/billing.js - Billing management → Query string helper: builds filters
controllers/billing.js - Billing management → Email dispatch: sends rejection notice
controllers/billing.js - Rejected-email routes → Access checks: checks access
routes/rejectedInvoiceEmail.js - Rejected-email routes → Rejected-email settings: dispatches
routes/rejectedInvoiceEmail.js - Rejected-email settings → Rejected-email model: reads and updates
controllers/rejectedInvoiceEmail.js - Rejected-email settings → Email settings parser: parses settings
controllers/rejectedInvoiceEmail.js - Email dispatch → Queue management: enqueues tasks
helpers/sendEmail.js - Email dispatch → SMTP service: delivers mail
helpers/sendEmail.js - Queue management → Mongo email queue: uses queue
queue/emailQueue.js - Email worker → Mongo email queue: consumes tasks
worker/index.js - Email worker → Email dispatch: dispatches tasks
worker/index.js