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.
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 trigger
Adding a new module is as easy as editing copying/editing a file.
Others
- Adding theme
- ...
Conclusion
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
- 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:
- Le socle de développement de Dolibarr: https://wiki.dolibarr.org/index.php/Environment_and_development_tools
- Le portail officiel du projet: https://www.dolibarr.org
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:
- Le portail officiel: https://www.dolibarr.org
- La documentation: https://wiki.dolibarr.org
- La démo en ligne: https://demo.dolibarr.org
- La place de marché de modules/extension: https://www.dolistore.com