Welcome Guest, Not a member yet? Register   Sign In
Multi-User CRM Design
#1

[eluser]jamgood96[/eluser]
Hey peoples,

I'm working on a CRM-like solution for my company. Things are progressing well at the moment, but we have an opportunity to share this CRM with other like-companies in our industry. We would likely do a subscriber type setup.

Right now I'm planning on having each "user/company" access a centralized system/application folder, that way when I update any pieces of the application all the subscribers will see it. The issue I'm running into when I think about it is how would I handle a subscriber that might want some more custom tweaks? Is it better for each "user/company" to have their own application folder so I can customize? This seems like it could get messy quick.

Thanks in advance!

James
#2

[eluser]CroNiX[/eluser]
I do something similar and I offer 2 variations:
1) Default, which is a symlinked version to a 'universal' application directory
2) Customizable (more $$), which they would get their own application directory that can be further customized.
#3

[eluser]jamgood96[/eluser]
[quote author="CroNiX" date="1330378387"]I do something similar and I offer 2 variations:
1) Default, which is a symlinked version to a 'universal' application directory
2) Customizable (more $$), which they would get their own application directory that can be further customized.[/quote]

I guess now that I start thinking about this, how do I handle things like separate databases and what not? Don't I need to have separate applications in general? I know that's not the way, but I'm having a brain-fart and not seeing clearly how to handle something like that.
#4

[eluser]CroNiX[/eluser]
in my index.php I define() a variable based on the value of $_SERVER['HTTP_HOST']. So, like 'www.onesite.com'. Then, I use that variable to define my database setup and name the database after the server value. Each site gets its own database and local images directory for uploading their custom images to. Everybody shares the exact same code base (everything is just symlinked to a common /application and /system directory, including the index.php file) for option #1.

If they go with option #2, they just get their own /application directory (and index.php) where it can further be customized with new features or whatever.
#5

[eluser]jamgood96[/eluser]
Okay, that makes sense.

So if they went with option two, would that mean you have to completely maintain their application folder if you make overall changes, or are you somehow just "building" upon the base application folder?
#6

[eluser]CroNiX[/eluser]
They get their own copy of the original /application directory. I then use git to merge any upstream changes into their branch so it stays current with the main branch (plus their extra features). It's more work to maintain (barely), so I charge more for that option monthly, but some clients want additional functionality which I am happy to code for them Smile
#7

[eluser]jamgood96[/eluser]
I've been playing with GIT and SVN as of late. That sounds like it would make things much easier. Are you hosting your git on github, or on a server? I'm planning on putting together a small server for our office and have been playing with subversion lately.
#8

[eluser]CroNiX[/eluser]
Ditch svn and just learn git. It's a lot more modern and has more useful features. I use my own server for my private git hosting. It's very easy. I use github for public stuff.
#9

[eluser]jamgood96[/eluser]
You using gitolite for the private hosting? Any gui or just command line? I need to do some more reading on git for sure. what about bug tracking? Any suggestions on that front?




Theme © iAndrew 2016 - Forum software by © MyBB