I would do it like this: each plugin is a directory ("./Pluginname") that contains the main file (./Pluginname/Pluginame.php). Pluginame.php contains a class called "Pluginame", an instance of which will be created each time this plugin is enabled in the admin panel. Thus, this class contains some functions that affect future code performance. You script should scan the plugin directory and show all available plugins in the admin panel module.
Then, if I write a plugin for your project management system, I can check it in my local copy and send you the first version of my plugin. If you accepted it, you will put my plugin in the plugin directory on your site, where any user can upload it to their own plugin directory automatically.
source share