There are some core plugins availabe in Joomla project for e.g. System, User, Search, authentication, content etc. Plugins provide a function which are associated with specific event trigger.
In one of my project, I had a requirement to add page title for all pages before loading the page. Although, page title can be added from the admin panel, but in this project, we have lots of custom component as well, so that we need to create a custom plugin.
Here my plugin name is 'pagetitle' and I have created two files 'pagetitle.php' and 'pagetitle.xml'. An xml file contain basic information of plugin and php file contain logic to add titles on each pages. As this functionality is related to system plugin so I have created plugin for 'system'.
You need to mention group in an xml file before installing a plugin. There are some triggers, according to my requirement, I also need to add page title on page load. There is a trigger 'onAfterDispatch', that is fired after the framework has dispatched application.
I attached pagetitle plugin for your reference.