Project / SubProject Management

Business perspective: Project & SubProject Management

1. Business Summary

Project containers group jobs by client engagement; sub-projects allow further decomposition; auto-creation hooks during job intake.

2. Business Value

Organizes work, simplifies reporting, and links delivery records to opportunities/accounts.

3. Users / Stakeholders

PMs, AMs.

4. Workflows

  • Auto-create from job intake: AutomationComponent::projectAutomation() creates a Project when projctArray.create_project=1.
  • Manual create: Standard CRUD.
  • Sub-projects: SubProject minimally implemented.

5. Sub-Features

  • Auto-creation alongside Job/PO/Contact.
  • Activities, Notes, Cases, FollowUps, Tickets per project.

6. Business Rules

  • Required fields: ProjectName, StartDate, EndDate, BrandId, CreatorId.
  • created_by/modified_by auto-set.

7. Data Entities

Project, SubProject, Brand, Opportunity, CreatorUser, ModifierUser.

8. Entry Points

  • projects/projects, projects/subProjects.
  • Internal: AutomationController::createProject (via component).

9. Inputs & Outputs

  • Inputs: project metadata.
  • Outputs: project record + linked jobs.

10. Integrations

  • Triggers TMS integration when jobs use Memsource (sleep delays observed).

11. Calculations / Logic

N/A.

12. Status Lifecycle

  • Limited explicit statuses; relies on linked entities (jobs/tasks).

13. Permissions

  • PMs, AMs, brand-scoped.

14. Reports & KPIs

  • Projects per account, jobs per project, status of linked jobs.

15. Risks & Observations

  • Lightweight container; logic concentrated in linked Jobs/Tasks.

16. Source Code Evidence

  • app/Plugin/projects/Model/Project.php, SubProject.php.
  • app/Plugin/projects/Controller/ProjectsController.php, SubProjectsController.php.
  • app/Controller/Component/AutomationComponent.php :: projectAutomation().

← Deep dives index