I’m working on a project for a cleaning company called “Cleanmart” that provides office and home cleaning services. The company is growing rapidly, and we need to create an order management system that will help track orders, assign them to employees, and manage schedules. We have several requirements for the system, and I’m looking for advice on how to implement them.
Main Requirements
User Registration and Authentication:
Administrators (to manage orders and employees).
Cleaners (to receive information about their tasks).
Clients (to create and track orders).
Order Management:
Clients can create orders specifying the time and address of the cleaning.
Administrators can view and edit orders.
Cleaners can view their assigned orders.
Order Assignment:
Automatic assignment of orders among available cleaners.
Ability for administrators to manually assign orders.
Scheduling:
Maintaining a schedule for each cleaner.
Notifications about new orders and schedule changes.
Reports and Statistics:
Reports on completed orders.
Statistics on cleaner workload and customer satisfaction.
Questions is:
What tech stack would be best for implementing this system?
We are considering using Node.js with Express on the server side and React for the frontend.
Database: PostgreSQL or MongoDB?
How should the application architecture be organized?
Microservices or monolithic architecture?
What main modules should be identified?
Which libraries or frameworks can help with implementing features such as scheduling and notifications?
Best practices for securing the system, especially for storing and transmitting clients’ personal data?
How to implement automatic order assignment?
What algorithms are suitable for this task?
I would appreciate any advice, recommendations, or code examples that could help in developing this system. I’m particularly interested in examples of successful implementations and potential pitfalls to avoid.
Cleanmart Company is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.