APPLE username: wyeung@kingdomcommunicationsltd.com password: Wave~2025 Entity name Kingdom Communications Limited Team ID 7W2J8ZKMXF Program Apple Developer Program Enrolled as Organization Phone 852-92772375 Street address Rm 409 4/F, 143 WAI YIP ST, Kwun Tong, Hong Kong Account Holder Wai Yeung Your role Account Holder Renewal date April 4, 2026 Google username: wyeung.kingdomcommunicationsltd@gmail.com password: Wave~2025 telephone: +852 92772375 帳戶 ID:7596410242972958134 Frontend (Mobile APP+Responsive) path: /web • Homepage • Contact Us • About Us • Login Pages o Account Manager login (App+Website) o Agent (App) o Admin Login (Website) o Vendor Login (Website) Account Manager (App+Website) path: /panel • Job Management o Review all jobs which belong to himself/herself:  Status  Due Date  Price o Approve Job to an Admin to follow o Confirm job which belongs to himself/herself:  Commission  Change the job status to "Approved" automatically o Assign job to vendor:  Able to assign Vendors  Set job cost  Adjust due date  Set deposit amount  Set finance amount  Total service charge (deposit balance amount) system will calculate it automatically  Change the job status to "Assigned" automatically o Verify job which belongs to himself/herself: o If press the fail button, change the job status to "Reprocess" automatically • Profit Management o Agent:  Review his/her closing rate (pie chart) & commission  Review all jobs which created by himself/herself o Vendor:  Review his/her Vendor's job & service charge  Review all jobs which assigned to himself/herself Agent (App) path: /webapp • Operation o Create Job  Unique ID  Price  Client company Name  Due date (For estimation)  End date  Remark (text area)  The rest of input fields which depends on different category  Create job and set status to Draft automatically  Approved by Account Manager • Generate quotation o Share to Client via Whatsapp / Email • Generate Invoice o Share to Client via Whatsapp / Email o Includes Company T&C o Change the job status to Sent automatically after sent invoice to client • Upload payment proof document in image/pdf format status (Set to Draft automatically after creating) o Full payment or Deposit o Review the closing rate (Pie chart) & commission Admin (Website) path: /cms • Project Management o View Enquiry/ Quotation/ Agent/ Vendor o Review job list/status:  Status  Due Date  Price o Report Management  Generate Job Agent/ Vendor report • Profile Management o Support Account Manager to manage users:  Create new users  Edit current users o Review Vendor job list o Payslip Management (Monthly)  Download Account Manager/ Agent / Vendor payslip  Release payslip (users can view it or not)  Remove o Content Management  Basic Config  Service Config CMS Account Manager / Admin (Website) path: /cms • Job Management o Review all jobs:  Status  Due Date  Price • Project Management o Project Status tracking o Review Project Documents o Share folder on Google Drive o Payment History • User Management o Push notification when project status updates o Create, Update & Delete user accounts:  Account Manager  Admin  Agent  Vendor • Report o Job report:  Unique ID  Quotation type  Created date  Due date  Customer company name  Price  Status  Agent ID  Agent name  Commission amount  Confirmed date  Total service charge amount  Completed date o Agent report (by month):  Agent ID  Agent name  Agent email  Total commission  Total number of jobs which are approved o Vendor report (by month):  Vendor ID  Company name  Total salary  Total number of jobs which are processing/ done • Event Reminder o Enable user to set events that system will push notification to remind user Detail explanatoin in Job mechanism Step 1: Agent Job creation: job status set to "draft" Step 2: Manager confirm: job status set to "approved", set commission amount for agent Manager disapprove: job status set to "rejected", agent Agent can resubmit rejected job: draft (for manager review) Step 3: For approved job, Manager can Assign job to vendor, job status change to "sent". set job cost, deposit amount, finance amount Step 4: Vendor can accept job: job status changed to "assigned". Vendor can decline job: - job status change back to "approved" - remove the vendor id from the job entry, - vendor_id, job cost, deposit amount, finance amount set to NULL - manager can reassign job to same or other vendor (Back to step 3) Step 5: For assigned job, vendor will do his/her work, when vendor side completed, then vendor can click on "Job completion request" button to trigger a job completion request. job status change to "in_progress" Step 6: Manager can confirm job completion for all jobs status with "in_progress" - Confirm job completion: job status change to "completed" - Disagree job completion: job status change back to "assigned" - Vendor can resubmit job completion request (Back to step 5) Notes 1: For all jobs, all manager/agent/vendor involved must be previously assigned to that project, this can be checked in the project_assignments table Notes 2: a) For jobs at any status, add a button for manager or agent can send quotation to agent b) For completed jobs, add a button for Manager or Agent can send invoice to client - enter client email - status change to sent. Notes 3: Click on a job to popup a modal for action selection, For all data entry (set job cost, set commission etc.) use a form to process. Notes 4: At any status, manager can opt to cancel a job pop up confirmation for job cancellation. For cancelled job, commission for agent and job cost will not be count. Once job is cancelled, the job will not be able to view by manager/agent/vendor, Admin can manage cancelled job in CMS Only Admin can delete job. Notes 5: admin and manager can also create job in CMS If job is created by admin or manager, then need to assign manager id and agent id the job status is automatically set to be approved the assigned manager/agent must be assigned to that project In /api/controllers write a new controller called ProfitController.php to calculate profit per user (agent and vendor) from a specific period expected profit for agent = sum of commission_amount of all 'approved','in_progress','assigned','sent','completed' job related to him/her within a specific period expected profit for vendor = sum of job_cost of all 'in_progress','assigned','completed' job related to him/her within a specific period actual profit for agent = sum of commission_amount of all 'completed' job related to him/her within a specific period actual profit for vendor = sum of job_cost of all 'completed' job related to him/her within a specific period you can refer to JobsController.php for the controller architecture you can refer to erp_schema.sql for the database structure valid jobs for agents: 'approved','in_progress','assigned','sent','completed' valid jobs for vendor: 'in_progress','assigned','completed'