How ahyannnn/solaris works
Solar IoT TPS is a role-based solar assessment and project-management application with customer, engineer, and administrator experiences. The main supported workflow is quote and pre-assessment handling, followed by project and invoice/payment management; administration also covers reporting and operations. The server exposes routed controllers over MongoDB, with PayMongo payments and Socket.IO-backed table updates. Source excerpts and the index establish only selected connections, so unsampled client-to-API wiring and several feature internals are left unspecified.
Main entry points: PreAssessment.js Assessment records · paymentController.js Payment processing · reportController.js Reports and exports · Project.js Project records
Components 24
Web application
- Role-based routing
client/src/App.jsx - Customer portal
client/src/pages/Customer - Engineer workspace
client/src/pages/Engineer - Admin console
client/src/pages/Admin
API and workflows
- HTTP server
server/server.js - Admin routes
server/routes/adminRoutes.js - Authentication
server/middleware/authMiddleware.js - Free quote handling
server/controllers/freeQuoteControllers.js - Pre-assessment workflow
server/controllers/preAssessmentControllers.js - Project management
server/controllers/projectController.js - Payment processing
server/controllers/paymentController.js - Reports and exports
server/controllers/reportController.js - Maintenance operations
server/controllers/maintenanceController.js
Persistence and realtime
- User records
server/models/Users.js - Client records
server/models/Clients.js - Assessment records
server/models/PreAssessment.js - Project records
server/models/Project.js - Solar invoices
server/models/SolarInvoice.js - Realtime updates
server/utils/realtimeHelper.js - Socket.IO server
server/socket.js
External integrations
- PayMongo adapter
server/services/paymongoService.js
Other components
- Customer / staff
- MongoDB
- PayMongo
Connections 35
- Customer / staff → Role-based routing: uses
client/src/App.jsx - Role-based routing → Customer portal: routes to
client/src/App.jsx - Role-based routing → Admin console: routes to
client/src/App.jsx - Role-based routing → Engineer workspace: routes to
client/src/App.jsx - HTTP server → Admin routes: mounts routes
server/server.js - Admin routes → Authentication: protects routes
server/routes/adminRoutes.js - Authentication → User records: loads account
server/middleware/authMiddleware.js - Admin routes → Reports and exports: dispatches reports
server/routes/adminRoutes.js - Free quote handling → Client records: reads
server/controllers/freeQuoteControllers.js - Free quote handling → User records: reads
server/controllers/freeQuoteControllers.js - Free quote handling → Assessment records: creates or reads
- Pre-assessment workflow → Assessment records: reads and writes
server/controllers/preAssessmentControllers.js - Pre-assessment workflow → Client records: reads
server/controllers/preAssessmentControllers.js - Pre-assessment workflow → Free quote handling: reads quote
server/controllers/preAssessmentControllers.js - Pre-assessment workflow → Project records: uses records
- Project management → Project records: reads and writes
server/controllers/projectController.js - Project management → Client records: reads
server/controllers/projectController.js - Project management → Assessment records: reads
server/controllers/projectController.js - Project management → PayMongo adapter: requests payment
server/controllers/projectController.js - Payment processing → PayMongo adapter: creates intents
server/controllers/paymentController.js - Payment processing → Assessment records: reads and updates
server/controllers/paymentController.js - Payment processing → Project records: reads
server/controllers/paymentController.js - Payment processing → Client records: reads
server/controllers/paymentController.js - Payment processing → Solar invoices: reads and updates
server/controllers/paymentController.js - Reports and exports → Assessment records: queries
server/controllers/reportController.js - Reports and exports → Project records: queries
server/controllers/reportController.js - Reports and exports → Client records: queries
server/controllers/reportController.js - Reports and exports → Solar invoices: queries
server/controllers/reportController.js - PayMongo adapter → PayMongo: calls API
server/services/paymongoService.js - User records → Realtime updates: attaches hooks
server/models/Users.js - Assessment records → Realtime updates: attaches hooks
server/models/PreAssessment.js - Project records → Realtime updates: attaches hooks
server/models/Project.js - Solar invoices → Realtime updates: attaches hooks
server/models/SolarInvoice.js - Realtime updates → Socket.IO server: emits updates
server/utils/realtimeHelper.js - HTTP server → MongoDB: connects
server/server.js