Présentation d’une application multiplateforme de saisie de notes de frais en itinérance.
Au programme :
- Présentation du projet POC Notes de frais et de ses différents modules
- Le programme de gestion des utilisateurs
- L'application mobile de capture et envoi de notes de frais
- Le programme de validation ou refus des notes de frais envoyées
- Le serveur web de consultation des notes de frais enregistrées
- Le serveur de gestion de la base de données
- Les sources du projet sont disponibles sur GitHub.
L'application proposée est découpée en plusieurs modules afin de montrer comment on peut jouer avec Delphi, ses fonctionnalités mobiles, web et desktop en faisant communiquer des programmes de différentes façons sur différents appareils.
Cette série d'articles permettra de montrer plusieurs technologies fournies en standard avec RAD Studio et Delphi à partir de la version Professional mais aussi désormais avec Delphi Community Edition.
Technologies utilisées : VCL, FMX, IntraWeb, WebBroker, des API mobiles, des API Windows, JSON, les composants réseau et bien entendu FireDAC pour les bases de données.
Les sources du projet et la rediffusion de cette présentation sont disponibles sur https://serialstreameur.fr/webinaire-20180712.php
1. POC Notes de frais
Présentation d’un logiciel multiplateforme développé sous Delphi
utilisant VCL, Firemonkey, WebBrocker et IntraWeb.
(c) Patrick Prémartin / developpeur-pascal.fr
2. L’idée
• Beaucoup d’entreprises ont du personnel nomade.
• Beaucoup de salariés et d’entrepreneurs passent leur temps à trier
des tickets de caisses et faire des notes de frais quand ils arrivent chez
eux, à l’hôtel ou au pire une fois par mois au bureau pour transmettre
ensuite à leur hiérarchie.
• Il existe beaucoup d’applications sur abonnement pour gérer ses
notes de frais, avec tout un tas d’options, ce qui m’a donné envie d’en
faire un POC.
(c) Patrick Prémartin / developpeur-pascal.fr
3. Concrètement
• Le projet « POC Notes de frais » est un ensemble de modules
permettant une gestion simplifiée de notes de frais.
• Le « nomade » fait une photo de chaque ticket de caisse qui est
transmise sur un serveur central.
• Un responsable du projet interroge la base de notes de frais en
attente et les valide ou les rejette.
• L’information remonte au « nomade ».
• Des administrateurs gèrent les comptes utilisateurs.
(c) Patrick Prémartin / developpeur-pascal.fr
4. Les programmes de l’application
• Le programme des nomades est une application mobile développée
avec Firemonkey sous Delphi.
• Le programme destiné aux administrateurs, parfois sur Mac, est
également développé avec Firemonkey pour fonctionner sur macOS.
• Le programme destiné aux « modérateurs » des notes de frais est
développé avec la VCL car ils sont sous Windows.
• Le serveur qui gère la base principale est développé sous Delphi avec
WebBrocker en configuration « console » pour tourner sous Linux ou
Windows.
(c) Patrick Prémartin / developpeur-pascal.fr
5. L’application mobile
• Développée avec FMX sous Delphi. Dispo pour iOS et Android.
• Identifie l’utilisateur (user / password) en vérifiant sa validité auprès
du serveur par une requête http(s) en POST.
• Utilise l’action standard pour prendre les photos. Ca permet d’appeler
le module de photographie du téléphone et bénéficier de ses réglages
plutôt que gérer nous-mêmes le focus, le zoom, ...
• Passe par des appels http(s) en POST pour soumettre les photos au
serveur.
• Stocke des données locales dans une base SQLite.
(c) Patrick Prémartin / developpeur-pascal.fr
6. La gestion des utilisateurs
• Développée avec FMX sous Delphi. Dispo pour macOS et Windows.
• Permet simplement de gérer une liste d’utilisateurs à partir d’une
simple liste.
• Importe/Exporte la base complète des utilisateurs depuis le serveur
(appels http(s) et transfert de la table sous forme de JSON utilisé dans
un TFDMemTable ensuite).
• Utilise les composants de saisie et d’affichage classiques avec
LiveBinding.
(c) Patrick Prémartin / developpeur-pascal.fr
7. La gestion des notes de frais
• Développée avec la VCL sous Delphi. Dispo pour Windows.
• Traite note de frais à valider par note de frais à valider.
• Demande au serveur une note de frais en attente de validation,
affiche l’image correspondante, enregistre les informations utiles puis
les renvoi au serveur.
• Utilise des ordres http(s) pour travailler en GET et POST.
(c) Patrick Prémartin / developpeur-pascal.fr
8. Le serveur
• Développée avec WebBrocker sous Delphi.
• Dispo pour Windows et Linux en console (ou background).
• Utilise une base de données SQLite pour archiver les informations à
traiter.
• Utilise un stockage sous forme de fichiers pour les photos des notes
de frais.
• Fourni une API « REST » simple ou tout simplement répond à des
ordres GET ou POST spécifiques.
(c) Patrick Prémartin / developpeur-pascal.fr
9. Bonus : un extranet de consultation
• En complément des programmes vraiment utiles, on ajoute un site
web de consultation de la base de données des notes de frais.
• Le programme affiche la liste des notes de frais et permet de
consulter la photo de chacune d’entre elles.
• Développement fait avec IntraWeb, exécutable uniquement sous
Windows pour le moment (Linux sera pris en charge dans la
prochaine version de IntraWeb dispo d’ici septembre).
(c) Patrick Prémartin / developpeur-pascal.fr
10. Bonus : un service d’alerte
• Pour que les utilisateurs gérant la liste des notes de frais soient
informés qu’il y en a à traiter, on ajoute un service Windows qui
interroge régulièrement le serveur web.
• Lorsqu’une nouvelle note de frais est à valider, une notification est
envoyée à l’utilisateur.
(c) Patrick Prémartin / developpeur-pascal.fr
11. Moins de parole, des actes !
• Pour reprendre ce célèbre slogan d’une « vieille » association
militante, nous allons pouvoir passer à la démo.
• Profitez-en pour poser vos questions, nous y répondrons dans
quelques minutes.
(c) Patrick Prémartin / developpeur-pascal.fr
12. Vos question ? Nos réponses !
• La parole est à vous.
• Et si vous avez des questions plus tard sur ce projet et son
fonctionnement, posez les moi depuis la rubrique « contact » du blog
https://www.developpeur-pascal.fr
(c) Patrick Prémartin / developpeur-pascal.fr