Skip to main content

Progiciel de gestion pour CAE

Project description

Un progiciel de gestion pour les CAE (Coopérative d’activité et d’emploi), les collectifs d’entrepreneurs indépendants.

Licence

Ceci est un logiciel libre, pour les conditions d’accès, d’utilisation, de copie et d’exploitation, voir LICENSE.txt

Nouvelles fonctionnalités/Anomalies

Site officiel : http://endi.coop

L’essentiel du développement est réalisé sur financement de Coopérer pour entreprendre. Si vous souhaitez plus d’information, une offre d’hébergement, vous pouvez les contacter info@cooperer.coop

Si vous rencontrez un bogue, ou avez une idée de fonctionnalité, il est possible de signaler cela aux développeurs directement ou en utilisant le système de tickets de GitLab (framagit). Exception : pour les bogues de sécurité, merci d’écrire un courriel à votre administrateur.

Instructions pour l’installation du logiciel (en environnement de prod)

Installation des paquets (nécessaire pour l’installation dans un environnement virtuel):

Sous Debian/Ubuntu:

NB : On utilise le dépôt nodesource pour avoir une version adaptée de nodejs. Si on ne souhaite pas faire ça, il est possible à la place d’utiliser docker-compose pour compiler le javascript (voir : https://caerp.readthedocs.io/fr/latest/javascript/build_docker.html)

curl -fsSL https://deb.nodesource.com/setup_16.x | bash - &&\

apt install virtualenvwrapper libmariadb-dev libmariadb-dev-compat npm build-essential libjpeg-dev libfreetype6 libfreetype6-dev libssl-dev libxml2-dev zlib1g-dev python3-mysqldb redis-server libxslt1-dev python3-pip fonts-open-sans libcairo2 libglib2.0-dev libpango1.0-0 libgdk-pixbuf-2.0-0

Sous Fedora:

dnf install virtualenvwrapper mardiadb-devel python-devel libxslt-devel libxml2-devel libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel gcc redis-server open-sans-fonts

Téléchargement de l’application

git clone https://framagit.org/caerp/caerp.git
cd caerp

Téléchargement des dépendances JS (requiert nodejs >= 16.x)

npm --prefix js_sources install
npm --prefix vue_sources install

Compilation du code JS

make prodjs devjs
make prodjs2 devjs2

Création d’un environnement virtuel Python.

cd caerp
mkvirtualenv caerp -p python3 -r requirements.txt

Installation de l’application

python setup.py install
cp development.ini.sample development.ini

Éditer le fichier development.ini et configurer votre logiciel (Accès à la base de données, différents répertoires de ressources statiques …).

Initialiser la base de données

caerp-admin development.ini syncdb

Si vous utilisez un paquet tiers utilisant d’autres base de données (comme caerp_payment en mode production)

caerp-migrate app.ini syncdb --pkg=caerp_payment

Puis créer un compte administrateur

caerp-admin development.ini useradd [--user=<user>] [--pwd=<password>] [--firstname=<firstname>] [--lastname=<lastname>] [--group=<group>] [--email=<email>]

N.B : pour un administrateur, préciser

--group=admin

Installation (en environnement de dev)

Installer les dépendendances système (cf ligne apt ou dnf, selon votre OS, dans la partie concernant l’installation en prod).

Ensuite, installez votre CAERP de dév avec les commandes suivantes :

sudo apt install […] (idem à la section concernant la prod)
git clone https://framagit.org/caerp/caerp.git
cd caerp
cp development.ini.sample development.ini
make postupgrade_dev

Il est possible de charger une base de données de démonstration complète (écrase votre BDD caerp si elle existe) avec :

caerp-load-demo-data development.ini
caerp-migrate development.ini upgrade

Pour les distribution possédant des versions de python incompatibles

Pour le moment, CAErp ne supporte pas les versions de pythons > 3.10, on peut donc passer par pyenv pour installer une version de python supportée par le projet via pyenv :

$ curl https://pyenv.run | bash

Après avoir suivi les instructions, il est possible d’initialiser un environement (en utilisant python 3.9 par exemple) :

$ cd workspace/caerp
$ pyenv local 3.9
$ pyenv virtualenv caerp
$ pyenv activate caerp
(caerp) $ pip install -e .[dev]

Exécution des tâches asynchrones

Un service de tâches asynchrones basé sur celery et redis est en charge de l’exécution des tâches les plus longues.

Voir : https://framagit.org/caerp/caerp_celery

pour plus d’informations.

Mise à jour (en environnement de prod)

La mise à jour d’CAERP s’effectue en plusieurs temps (il est préférable de sauvegarder vos données avant de lancer les commandes suivantes)

Mise à jour des dépendances python et du numéro de version

pip install .

Mise à jour de la structure de données

caerp-migrate app.ini upgrade

Si vous utilisez un paquet tiers utilisant d’autres base de données (comme caerp_payment en mode production)

caerp-migrate app.ini upgrade --pkg=caerp_payment

Configuration des données par défaut dans la base de données

caerp-admin app.ini syncdb

Met à jour les dépendances JS

npm --prefix js_sources install

Compile le JavaScript :

make prodjs

Puis lancer l’application web

pserve --reload development.ini

Mise à jour/changement de branche (environnement de dév)

Ces instructions sont à suivre une fois à jour sur la branche git souhaitée. Elles sont sans risque : au pire elles ne feront rien si tout est déjà à jour.

La commande suivante devrait s’occuper de tout

make postupgrade_dev

Standards de codage Python

Le code CAERP doit être formatté en respectant la pep8.

À cette fin il est recommandé d’utiliser un analyseur de code comme flake8.

En complément, afin d’assurer une uniformisation dans la mise en forme du code, l’outil de formattage de code black doit être utilisé pour le développement.

Il peut être configuré au niveau de votre éditeur (le plus confortable) et/ou en pre-commit.

Il est également possible de lancer black manuellement sur l’ensemble du projet :

make black

(si vous n’utilisez pas black en local, l’intégration continue vous le rappelera 😁)

Base de données avec docker-compose (MariaDB + redis)

Pour héberger sur un conteneur docker jettable et reproductible sans toucher à la machine hôte, une configuration docker-compose est disponible.

Pour installer l’environnement (la première fois) :

sudo apt install docker-compose
sudo usermod -a -G docker $USER

Pour l’utiliser, plusieurs raccourcis sont offerts :

# Faire tourner une BDD que l'on stoppera avec ctrl+c
make dev_db_serve
# Démarrer une BDD
make dev_db_start
# Arêtter une BDD démarrée avec la commande précédente
make dev_db_stop
# Effacer les données de la BDD de dév
make dev_db_clear

Des configurations adaptées à docker-compose sont commentées dans test.ini.sample et developement.ini.sample.

Compilation dynamique des assets (JS/CSS) avec docker compose

Pour compiler uniquement les fichiers js

docker compose -f js-docker-compose.yaml up

Pour compiler les fichiers css

docker compose -f css-docker-compose.yaml up

Tests

Copier et personnaliser le fichier de configuration

cp test.ini.sample test.ini

Lancer les tests

py.test caerp/tests

Documentation utilisateur

Le guide d’utilisation se trouve à cette adresse : https://doc.endi.coop


Ce projet est testé avec:

BrowserStack

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

endi-2024.3.6.tar.gz (16.3 MB view details)

Uploaded Source

File details

Details for the file endi-2024.3.6.tar.gz.

File metadata

  • Download URL: endi-2024.3.6.tar.gz
  • Upload date:
  • Size: 16.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for endi-2024.3.6.tar.gz
Algorithm Hash digest
SHA256 52c04c844af686342490a4c37291f139b854a2ad24dae60ba3d5cfc65050ab2d
MD5 eb613dcd82ef29fbeb38eff7f9ac54e5
BLAKE2b-256 3313d740c82b0de7de047832738296e30e6c3d5a53c1dba64e311742d6418db3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page