NOTE: This ticket makes it possible to deal with dashboards within the application. Once this work is complete, we can implement UI support for the organizer specifying the dashboard instance when enabling registration.
Once the schema from T316409 is in place, we would create the following:
- A `TrackingTool` interface (we may create more base interfaces in the future)
- A class for each tracking tool type (e.g., P&E dashboard); these classes would implement the `TrackingTool` interface. These classes would have platform-specific knowledge, e.g., how to build a dashboard URL starting from a base URL and a dashboard identifier.
- A factory/registry that:
-- Has a constant with the following structure:
```lang=php
[
tracking_tool_unique_id_integer => [
'name' => display_name_of_the_tool,
'base_url' => base_url_of_dashboards
],
...
]
```
note that we may need to add more information (e.g., base URL of the API endpoint). Also, the constant could be moved to config in the future, letting sysadmins add more tools.
-- Can map a database record (in particular the tracking tool ID) to an element in the map described above
-- Can consequently determine which class it should instantiate