monicahq / monica

Personal CRM. Remember everything about your friends, family and business relationships.
https://beta.monicahq.com
GNU Affero General Public License v3.0
21.47k stars 2.14k forks source link

Business modules #975

Open barryvdh opened 6 years ago

barryvdh commented 6 years ago

Your Strategy includes:

Add modules that can be activated on demand. One would be for instance, for the people who wants to use Monica for dating purposes (yes, we've received this kind of feedback already).

Do you have something in mind for modules already? Eg. I was thinking about business modules (add Companies, where contacts are part of, perhaps simple projects for those companies).

Not sure if that would be useful to include as modules or that it would be easier just to fork Monica.

djaiss commented 6 years ago

This is the kind of feature for which I would need the help of the community, as I wouldn't know how to start with the notion of modules (I've never done it). This issue could be a good starting point for the discussion - especially considering the major impact on the product as a whole. The only point, even if we decided to allow custom modules, is that we are months away from having it - so if you need it, it's better to fork for now.

The reason I'm a bit hesitant (despite the fact that I really like the idea), is because I've received many requests already to transform Monica into a pure business tool. And I want it to be about people first. Everything we do in life is about people. It has to remain the core of the product.

In terms of supporting a more business-y usage of Monica, we already have tags to classify people, and I'm working on #19 right now to allow custom relationships. It's a bit light, I agree. Let's discuss here.

barryvdh commented 6 years ago

For business-y usage, I could imagine that companies are also Contacts, but perhaps with a custom scope (eg. type = personal, company or ..), to re-use the same logic. And a relationship (company -> employees) could be used the connect the companies with company employees.

For the module architecture it would be a bit dependant on if you want to allow external composer package to add things, or that you want to add it to your core.

The first would be a bit more flexible as it doesn't rely on your approval, but would shift some security issues to the external packages (like wordpress etc also), but would require decent ways to hook into your application. Could be as simple adding items to the menu, but also events to modify queries, slots to add extra blocks to pages etc.

Adding it to the core would be easier probably, as you could just add the code you want everywhere, and just add some mechanism to check if some module is activated or not.

degan6 commented 6 years ago

I don't think this is a good idea. Using Monica for business use defeats the purpose of the project in my opinion. By adding these features I don't see how the product would be different from a main stream CRM.

I do think expanding the models to support companies could be a good idea, but at the same time, I don't see a problem in doing a tag like search by the company name to find people in the company.