= Use-Case Model = == Actors / Roles == * '''Admin''' – The agency operator who manages clients, creates projects and tasks, assigns work to team members, tracks domains, and issues invoices. * '''Worker''' – A team member who executes assigned tasks, logs worked hours through timesheets, uploads deliverable files, and comments on tasks. * '''Client''' – The customer the work is done for, who views the status of their projects and tasks, reviews delivered files, and receives invoices. == Use-Cases == '''Admin''' * UC0001 – Create and assign a task to workers – Admin creates a task under a project and assigns one or more workers to it. * UC0003 – Issue an invoice with line items – Admin creates an invoice for a client with itemized line items and computed totals. * UC0004 – Track domain renewals – Admin reviews client domains approaching expiry to plan renewals. * UC0005 – Manage clients and projects – Admin onboards clients and creates the projects delivered to them. '''Worker''' * UC0006 – Log timesheet hours – Worker records hours worked against a timesheet project. * UC0007 – Upload a deliverable file – Worker uploads a file to a task for client review. * UC0008 – Comment on a task – Worker adds an internal or client-visible comment to a task. '''Client''' * UC0002 – View project and task status – Client views the current status of their projects and the tasks within them. * UC0009 – Review a delivered file – Client views files marked visible and approves or requests revisions. * UC0010 – View invoices – Client views issued invoices and their payment status. == Detailed Use-Cases == The following use-cases are documented in detail with tested SQL commands: * [wiki:UseCase0001 UseCase0001] – Admin creates and assigns a task to workers * [wiki:UseCase0002 UseCase0002] – Client views project and task status * [wiki:UseCase0003 UseCase0003] – Admin issues an invoice with line items