Draft:Conferences and Presentations Dolibarr

(Draft page, no need to be translated)

Cette page représente des plans type de conférences possibles sur Dolibarr ERP/CRM.


Orientation.png THEME DE CONFERENCE C: DEMO TAKE IT EASY

Title/Duration

WHY DOLIBARR IS SO EASY

Duration: 7mn maximum

Goal

Show how Dolibarr is easy to use.

Plan

Introduction

Dolibarr is an ERP & CRM software package, so a tool to manage a company resources ad customers relationships. It differ from other softwares on same category because our strategy and technology differs.

  • Other OpenSource softwares try to reach medium and large company market. The try to add most feature as possible, making them sophisticated and
  • Dolibarr is not endorsed to any company but a foundation (like Mozilla is for Firefox) and goal is to reach small and medium companies, freelance and users with no technical knowledges. To reach this goal, all works were concentrated on 5 words:

- easy - easy - easy - easy - easy (easy to install, easy to setup, easy to use, easy to enhance, easy to develop)

TOOLS TO PREPARE: Presentation page.

Easy to Install

Easy to install (on your own computer Linux)

-> DoliDeb

TOOLS TO PREPARE: Debian package onto desk

Easy to install (on your own computer Windows)

-> DoliWamp

TOOLS TO PREPARE: A windows virtual machine with DoliWamp onto desktop

And this works any other Operating System (Macintosh, any Windows, any Linux like OS). Do you know any other enterpise software that provide a full autoinstall process for all OS ?

Easy to install (in the SaaS)

TOOLS TO PREPARE: Video recording to create a DoliCloud instance.

Easy to setup

But what about setup ? ERP are known to be "usine à gaz". Dolibarr philosophy choose the opposite way of working: By default, Dolibarr has no feature at all. Let's see what it looks after login. To enable feature, just click "on". Some feature has subfeature, just click "on" too.

Do you know any other enterprise softwares who choosed this strategy ?

TOOLS TO PREPARE: A .sql for an empty "just installed" instance. A link to script init_demo.sh with this sql as parameters. A link to opened instance.

Easy to use

Most menus use same syntax with only 3 entries:

  • New
  • List
  • Statistics

The learning curve is one hour.

Easy to enhance

-> Dolistore download Dolimed, then unzip file and show what it changes.

TOOLS TO PREPARE: Module Dolimed on desktop.

Easy to develop

Adding a new module is as easy as editing copying/editing a file.

TOOLS TO PREPARE: A module descriptor with next changes ready but commented.

Adding a menu entry
Adding a trigger

Adding a new module is as easy as editing copying/editing a file.


Others
  • Adding theme
  • ...

Conclusion

Orientation.png THEME DE CONFERENCE A: REUSSIR UNE APPLI DE GESTION PHP PAR L'EXEMPLE DE DOLIBARR ERP/CRM

Titre/Durée

REUSSIR UNE APPLI DE GESTION PHP PAR L'EXEMPLE DE DOLIBARR ERP/CRM

Durée: 45mn minimum (sans séance de questions) ou 1h (dont séances de questions)

Objectif

Présenter les pratiques PHP, et règles de l'art du développement PHP, à mettre en oeuvre pour réaliser un gros projet comme un ERP/CRM, pour chacune des grandes problématiques d'un tel projet (Sécurité, performances, qualité du code, maintenance, ...) et les illustrer par un retour d'expérience de leur mise en œuvre dans la réalisation de Dolibarr ERP/CRM.

Plan de la présentation

Principe de la présentation

  • 8 thèmes seront abordés.
  • Pour chaque thèmes, 3 paragraphes évoqués: pourquoi, comment par l'exemple, résultat par l'exemple

Thèmes abordés

Les thèmes abordés seront les suivants:

  • Thème 1: Documentation technique
  • Thème 2: Accès aux données (DAO)
  • Thème 3: Design pattern MVC et moteur de templates
  • Thème 4: Performances
  • Thème 5: Traduction
  • Thème 6: Portabilité
  • Thème 7: Sécurité
  • Thème 8: Tests unitaires/non régression

Choix de l'exemple

Présentation de Dolibarr ERP/CRM, le produit et surtout le projet qui servira aux exemples.

Présentation fonctionnelle

Énumération des fonctionnalités

Présentation technique

Énumération des caractéristiques techniques

Présentation historique

Background du développement de l'application.

Thème 1: Bonnes pratiques PHP Documentation

  • Pourquoi

-> Faciliter la maintenance et développement

  • Comment

-> Tags et outils types Eclipse + Doxygen

  • Résultat

-> Présentation de la documentation

Thème 2: Bonnes pratiques PHP Design pattern DAO

  • Pourquoi

-> Banaliser le développement et maintenance

  • Comment

-> Présentation du générateur de DAO fait maison Dolibarr

  • Résultat

-> Adhésion rapide au développement.

Thème 3: Design pattern et moteur de templates (MVC by part versus MVC by file)

  • Pourquoi

-> Faciliter la lecture du code, maintenance

  • Comment

-> Comparaison des Frameworks "MVC by file" (Smarty, ...) ou pratique Dolibarr "MVC by part" (controlleur et présentation séparés mais se suivant dans le même fichier)

  • Résultat

Tableau comparatif

Avantage/Inconvénient Moteur template (Smarty, ...) Template natif PHP (choix Dolibarr)
Garantie "technique" isolation code/présentation oui non
Maintenance Plus simple
Evolutivité Plus fermé Plus souple
Fonctionnalités
Performances Moins bonne (attention aux annonces de "cache"). 120 Base 100
  • Résultat

-> Retour expérience sur Dolibarr: Résultat en terme de performance sur Dolibarr Résultat en terme de lisibilité Abandon de templates Smarty au profit de templates ... PHP -> Adhésion rapide au développement.

Thème 4: Bonnes pratiques PHP Performances

Optimisation navigateur et réseau

  • Pourquoi

-> Optimiser la génération et travail du browser -> Réduire le flux réseau

  • Comment

-> Demo du plugin Firebug / Google PageSpeed.

  • Résultat

-> Bilan gain des modifications faites sur Dolibarr.

Diagnostique avec Xdebug

  • Pourquoi

-> Identifier les portions de code "ratés"

  • Comment

-> Présentation d'une lecture avec XCacheGrind (WinCacheGrind ou KCacheGrind)

  • Résultat

-> Bilan gain des modifications faites sur Dolibarr.

Utilisation d'un serveur de cache

  • Pourquoi

-> Réduire le temp d'initialisation des données persistantes réinitialisées à chaque accès PHP.

  • Comment

-> shared memory ou serveur memcached ?

  • Résultat

-> Bilan gain des modifications faites sur Dolibarr.

Thème 5: Bonnes pratiques PHP Traduction

  • Pourquoi

-> Avoir un projet internationalisé.

  • Comment

-> Favoriser les contributions externes spontanées par un socle technique adapté.

  • Résultat

-> Résultat obtenus sur Dolibarr.

Thème 6: Bonnes pratiques PHP Portabilité

PHP est déjà un langage portable. Mais certain sujets requiert malgré tout une couche de portabilité supplémentaire.

Base de données (iso/utf, mysql/postgresl/mssql)

  • Pourquoi

-> Un projet indépendant du serveur de base de données

  • Comment

-> Comparaison de la couche d'abstration PDO et de celle de Dolibarr

Avantage/Inconvénient PDO Surcouche Dolibarr
Portabilité ordres DDL

(select, insert...)

Oui Oui
Portabilité ordres DML

(create, truncate, ...)

Non Oui
Portabilité code erreurs Incomplète Oui
Gestion transactions imbriquées Non Oui
  • Résultat

-> Résultat obtenus sur Dolibarr sur portabilité sans double maintenance.

Encodage du système de fichiers (ansi windows/utf linux)

  • Pourquoi

-> Un produit multiplateforme -> Permettre des développements sous Windows et une mise en production sous Linux

  • Comment

-> Présentation portion de code d'abstraction au système de fichier

  • Résultat

GET-POST-REQUEST

  • Pourquoi

-> Un système de passage de paramètre unique

  • Comment

-> Abandon de l'utilisation de REQUEST au profit d'une fonction GETPOST()

  • Résultat

-> Résolution des problèmes dus aux cookies homonymes des paramètres. Un souci technique de moins. -> Possibilité de placer des controles d'entrée utilisateur de manière centralisée.

Thème 7: Bonnes pratiques PHP Sécurité

  • Pourquoi

-> Définition des dangers (Rappel du top 10 des dangers recensés par l'OWASP)

  • Comment

-> Danger OWASP 1 -> Solution PHP -> Exemple dans Dolibarr ERP/CRM

-> Danger OWASP 2 -> Solution PHP -> Exemple dans Dolibarr ERP/CRM

-> Danger OWASP n -> Solution PHP -> Exemple dans Dolibarr ERP/CRM

-> Danger OWASP 10 -> Solution PHP -> Exemple dans Dolibarr ERP/CRM

  • Résultat

-> Pas de retour à offrir. Mais quand on parle de sécurité, n'est-ce pas en soit un bon bilan ?

Thème 8: Tests unitaires et PHPUnit

  • Pourquoi

-> Améliorer la qualité -> Réduire le travail répétitif des tests

  • Comment

-> PHPUnit - Selenium

  • Résultat

-> Bilan couverture de tests PHPUnit -> Pas de bilan Selenium (trop nouveau)

Conclusion

Petite conclusion...

-> Ouverture sur d'autres bonnes pratiques non abordés car non mise en œuvre dans Dolibarr ERP/CRM

  • Génération de code par Module Builder (exemple ....)

Pour plus d'informations:


Orientation.png THEME DE CONFERENCE B: DOLIBARR ERP/CRM: Gérer votre entreprise ou association facilement

Titre/Durée

Gérer votre entreprise ou association avec Dolibarr ERP/CRM. Durée: 20mn minimum (sans séance de questions) ou 45mn (dont séances de questions)

Introduction/Objectifs

Présenter l'installation et grandes fonctionnalités de Dolibarr

  • Produits
  • Tiers (Clients/Prospect/Fournisseurs)
  • Devis
  • Commandes
  • Factures
  • Banque et rapprochement

Produits

Tiers

Devis

Commandes

Factures

Banque et rapprochement

Autres fonctions importantes non abordées

  • Point de vente/Caisse enregistreuse
  • Contrats de services (suivi d'abonnement ou services à durée limitée dans le temps)
  • Autres modules transverses

Conclusion

Quelques adresses pour plus d'information: