Kodall
Exercises

Exercise 18: Digital Marketing Campaign

Rendering diagram...

Description

  • The property “name” in the table "campaign_state" can have the values: "Planned", "Active", "Completed", "Canceled".
  • This app manages marketing campaigns, tracking details like title, objectives, budget, and campaign state (e.g., planned, active, completed). It links marketers to campaigns, noting which marketers manage which campaigns.
  • Campaigns are associated with various ads (e.g., title, medium, cost), and the app tracks which ads are part of each campaign. It organizes the relationships between marketers, campaigns, and ads for efficient campaign management.
  • In entity "campaign_state", name represents the state that will be displayed on the screen, label represents the value that programmer will use to filter the states, and the uuid represents a value to distinguish the states.
  • Note: The value of the field "uuid" is generated automatically.

Tasks

  • marketer/campaign/ad/campaign_state/marketer_ad/marketer_campaign: Add, Update, Delete.
    • When the campaign is created, it will automatically become "Planned".
    • The field "Campaign state" from entity "campaign" will be read-only in edit view.
  • Create a catalog for entities: "campaign_state", "campaign", "ad" and "marketer".
  • Two campaigns cannot start and end within the same time interval → validation message.
  • Create event listeners for tables that needs validations (e.g., adding a marketer without a name, campaign without title, etc., should not be allowed).
  • Check that at least one marketer is in the campaign, if it is not → validation message.
  • Add a new entity action at the campaign level "Start campaign":
    • The state will change from "Planned" to "Active".
    • A campaign cannot start if it is already in the "Active" state.
    • A campaign cannot start if it is in the "Completed" or "Canceled" state.
  • Add a new entity action at the campaign level “Cancel campaign”, that will change the campaign status to "Canceled":
    • A campaign cannot be canceled if it is in the "Completed" state → validation message.
    • A campaign cannot be canceled if it is already in the "Canceled" state → validation message.
  • Add a new entity action at the campaign level "Complete campaign":
    • It can't be completed if it is "Planned";
    • It can't be completed if it is "Canceled".
    • It can't be completed if it is already in the "Completed" state.
  • Marketer report: campaign situation at marketer level (total number of campaigns, ads cost).
  • Ad report: campaign situation at ad level (total number of campaigns, ads cost).