HybirdCorp / creme_crm

Creme is a highly configurable free/open-source Customer Relationship Management designed with an entities/relationships architecture.
Other
51 stars 20 forks source link
crm django python

Creme is a free/open-source Customer Relationship Management software developed by Hybird (www.hybird.org).

It is designed with an entities/relationships architecture, and is highly configurable, which allows adapting Creme to many workflows.

Detailed view of a contact

It provides apps (i.e. modules) to manage:

Lots of aspects can be configured through a graphical interface :

Creme has powerful tools to filter, search or import data. it provides a credential system with some cool features (teams, allow/forbid entities from a filter on fields/relationships, ...).

If you have very specific needs, Creme can also be used as a CRM framework to code your own CRM.

Creme is coded in Python, and uses the Django web framework (http://www.djangoproject.com/) and the JQuery javascript library (http://jquery.com/).

You can find more information on Creme on its official website: http://cremecrm.com/ You can ask your questions in our forum: https://www.cremecrm.com/forum/index.php (there is an english section)

Current translations

Recommendations:

It's recommended to use a database engine which supports transactions :

You probably should use 'virtualenv' (for an upgrade from Creme 2.4, you should create a new virtual env, in order to keep the old one working).

Dependencies

Installation with 'pip':

Install

Global remarks:

Database configuration: For a new installation, you have to create a new database & a new DB user (who is allowed to create/drop tables, indices...). For an upgrade from the previous major version, back up your existing DB (of course you should back up regularly, even when you do not upgrade Creme...).

Project creation: For new installations AND for upgrades from Creme 2.4, create a new project ; with the virtualenv activated, use the following command which creates a new folder:

>> creme creme_start_project my_project

Settings: The newly created file "my_project/my_project/settings.py" gives all the information for a basic installation with the minimal information you must fill.

For an upgrade from the previous version of Creme :

Filling the DB tables & creating the static asset: You must be in the parent folder "my_project/" (i.e. not "my_project/my_project/"). Run the following commands (new installations AND upgrades from a previous version):

>> creme migrate --settings=my_project.settings
>> creme creme_populate --settings=my_project.settings
>> creme generatemedia --settings=my_project.settings

Note for MySQL users: you should load the time zone tables.

Launch

To run the development server, you just have to run this command:

>> creme runserver --settings=my_project.settings

You can then go to http://localhost:8000 & log in with root/root.

For a production deployment (Apache, Nginx...), you should read https://docs.djangoproject.com/en/3.2/howto/deployment/

In order to get a completely functional instance, the job manager must be launched (some features need it: sending emails campaign, CSV import...). To run it, use this command (in a production environment a watch dog is advised):

>> creme creme_job_manager --settings=my_project.settings

Uninstall apps

When you have a working installation, & want to remove an (optional) app, use the command 'creme_uninstall' which will clean the DB. When it's done, you can comment the app in local_settings.py

Contributing

The repository is using CircleCI and launch some linting tests. To check them locally before any commit or push you can use the hooks in '.githooks'. There are two ways to configure them:

Simply change git configuration (works with git 2.9+)

>> git config core.hooksPath .githooks

Or create symlink in '.git/hooks/'. Make sure the old one are moved or removed.

>> ln -s ../../.githooks/pre-commit .git/hooks/pre-commit
>> ln -s ../../.githooks/pre-push .git/hooks/pre-push

In order to run the JavaScript linter locally, you can install a NodeJS environment within your virtualenv thanks to the Python package nodeenv. In your virtualenv (named "mycremeenv"):

>> pip install nodeenv
>> nodeenv -n 14.20.0 -p    # to install nodejs 14.20.0 with "mycremeenv"
>> deactivate
>> workon mycremeenv
>> nodejs --version  # to check the installation is OK
>> make node-update  # Install nodejs requirements

Now you can run "make eslint" manually, and the pre-commit hook will check the new/modified files.

References

Creme CRM source code is available on the Creme CRM GitHub Repository.

Want to know more about Creme CRM ? Check out the Creme CRM Website.

Want to try Creme CRM ? Visit the Creme CRM Public Demo Website.

Want your own demo instance ? Pull the latest Creme CRM Demo Docker image on the Creme CRM DockerHub Repository.

Want to know more about our company ? Check out the Hybird Website.

Any other questions ? Need help ? Reach us on the Creme CRM Forums. Our (french) Video tutorials.