git clone https://github.com/NegasiHaile/FMCMS
To install the backend project dependencies run the following command in the root project.
npm install .
To install the the React project dependencies fellow the following two steps.
cd client
npm install .
Run this in the root project
npm run dev
This system features 10 type of user roles with their own privileges.
- Super Admin (Who initiates the system)
- Main Store (Manage overall machines)
- Branch Admin (Control branch activities)
- Operation Manager (Manage branch sales operations)
- Branch Store (Manage branch machines)
- Sales (Sale machines and Prepare sales documentation)
- Machine Controller (Manage client’s machines)
- Technician (Macke maintenance and fiscalization)
- Customer Service (Deliver machines)
- Client (Machine buyers)
- Machine Sale
- Machine Maintenance
- Machine withdrawal
- Mailing system
- Create Branch
- Add employee (Register new employee and push to one of the branches).
- Add (Register) new imported Machines, MRC, and SIM Details in the main branch.
- Distribute these registered Machines, MRCs, and SIM cards from the main branch to sub-branches.
- Accept (confirm) new arrival machines and SIM cards in sub-branch distributed from the main branch.
- Assign (attach) MRC and SIM to a machine
- Add clients (business owners) details
- Register the client's business details.
- Assign (attach) machines to the business (Prepare sales document).
- Request the sales document to the Operational manager for approval.
- Approve the sales documentation and request to the branch store for machine readiness
- Assign a technician to the machine who can make the fiscalization.
- Request to a technician for fiscalization
- Request fiscalized machine back to machine controller
- Request customer service for delivery
- Confirm delivery and print delivery note (Sales endpoint)
- Receive client machine
- Request received machine to machine controller for: a. Maintenance b. Temporary Store c. Withdrawal
A. Maintenance
- Assign Technician
- Request to technician for maintenance
- Request maintained machine back to machine controller
- Request to customer service for delivery
- Confirm machine delivery and print delivery (make an agreement with business contact person) (Maintenance endpoint)
B. Temporary Store
- Request to branch store for machine temporary storing.
- Request back to machine controller for delivery
- Request to customer service for delivery
- Confirm machine delivery and print delivery note (Make an agreement with the business contact person) (Temporary store endpoint)
C. Withdrawal
- Request to machine controller to submit the machine
- Request machine to branch store for restoring
- Confirm restore machine (Withdrawal endpoint)
1, Add email
2, Verify email
3, Make the email primary
4, Make the email openable from any app
3, Close the reCAPTCHA system
- Super Admin
- Manage Branches • Create, update branch • See branches detail, Dashboard and Activities.
- Manage users Account • Add employee (user) and push to sub-branch • Activates and Deactivates user account
- Manages system email: - When a user
forget password
a password reset link must be sent to the user email. And there should be an email used to send the link. Then the following privileges are under this user: - • Add new email • Verify email • Make email as a primary email of the system • Change primary email of the system
- Main Store
- Manages Machine ( o Register, o Update o And delete new imported machines o Distribute machines to sub-branches)
- Manages SIM Cards ( o Register, o Update o And delete new imported SIM cards o Distribute SIM cards to sub-branches
- Manages MRC ( o Register, o Update o And delete new imported SIM cards o Distribute SIM cards to sub-branches
- Branch Admin
- Control branch activities
- Activate and deactivate branch users
- Operational Department
- Approvement of sales (Read the sales documentation and approve sales)
- See branch sales and maintenance analysis
- Branch Store
- Accept new arrivals (Machine and SIM cards)
- Attach SIM card and MRC with machines
- Request machine for fiscalization
- Accept restore machines
- See machines report (Sold, Unsold, and Processing)
- Sales
- Create an account for client
- Encode business details of the client
- Attach machines to the business
- Request to operational manager for sales approvement
- See yearly and monthly branch sales report
- Machine Controller
- Control Client Machines o Control machines came for maintenance and requested them to technician for maintenance. o Control machines came for withdrawal and request to branch store for restoring. o Control machines which are ready for delivery and request them to customer service for delivery
- Technician
- Fiscalize the machine and request to the machine controller
- Receive client machines come for maintenance
- Make maintenance to the machines and request back for the machine controller
- Customer Service
- Assign technician to machine for fiscalization and maintenance
- Confirm machine delivery
- Print machine delivery notes and make agreements with the business contact person (machine owner).