Ce projet consiste à développer un systéme de gestion des clients, des abonnements, de contrôle des espaces et des machines pour le futur atelier numérique Orles Valley. D'autres fonctionnalités peuvent être ajoutées à ce système logiciel à condition de faire le tour des spécificités techniques et de l'architecture de ce dernier.
Pour faire fonctionner ANOVManager sur une machine quelconque (physique ou virtuelle), l'application repose sur les composants suivants:
- Python:
Python
est un language de programmation et un écosystème logiciel compté parmi les plus utilisés au monde et les plus simples à prendre en main,
- Django:
Django
est un framework open source écrit en Python pour vous permettre de développer des applications web,
- Docker:
Docker
est un moteur logiciel permettant la génération, le déploiement et la gestion d'applications dans des conteneurs logiciels,
- Docker compose:
Docker compose
est un outil logiciel permettant la génération, le déploiement et la gestion d'applications multi-containers avec Docker,
- MySQL:
MySQL
est un moteur de gestion de bases de données permettant le stockage et la gestion des données relatives au bon fonctionnement du fablab,
- pip:
pip
est un utilitaire pour l'installation et la gestion de packages python,
- virtualenv:
virtualenv
est un utilitaire pour créer des environnements virtuels python isolés,
- jQuery:
jQuery
est une bibliothèque JavaScript permettant la mise au point d'effets dans les pages web,
- jQuery UI:
jQuery UI
est une extension du frameworkjQuery
présenté précédemment, permettant la mise au point d'effets pour les widgets de la page web,
- git:
git
est l'utilitaire de gestion de versions utilisé par le projet de développement de l'applicationANOVManager
,
- Bootstrap:
Bootstrap
est une collection d'outils pour la mise en place du design des pages web composant l'applicationANOVManager
,
- Font Awesome:
Font Awesome
est une police d'écriture et (surtout) une boîte à icônes basées sur CSS, LESS et SASS.
Pour la bonne configuration de l'environnement de déploiement, il est nécessaire d'installer Django
, Git
, Docker
, Docker compose
, virtualenv
et pip
.
Tout est expliqué en détail dans les parties Installation de ANOVManager sur une machine quelconque et Installation de ANOVManager grâce à Docker compose ci-dessous.
Il est maintenant temps de s'intéresser de très près à la structure du projet. À sa racine, le projet se compose des éléments suivants:
-
Le fichier manage.py permettant l'exécution de tâches administratives pour n'importe quelle application web basée sur le framework Django,
-
Le fichier requirements.txt contenant tous les packages Python nécessaires pour le bon fonctionnement de l'application web et permettant leur installation, tous disponibles sur le hub officiel de l'écosystème Python nommé PyPI. Ces packages sont:
-
Django correspond au framework sur lequel se base la totalité de la structure de l'application web courante,
-
mysqlclient correspond au client MySQL indispensable pour une connexion de l'application web courante à la base de données,
-
fontawesome-free permet d'utiliser Font Awesome librement et de l'intégrer dans n'importe quel projet Python,
-
sphinx permet de générer simplement et proprement la documentation du projet courant.
-
Précision importante: pour plus de clartés et de précisions sur la structure générale d'un projet de développement d'une application web basée sur Django, veuillez vous référer au tutoriel sur le site officiel de Django ici s'il vous plaît (l'élément '3.1' correspond au numéro de version du framework Django, veuillez donc le remplacer par votre propre numéro de version s'il vous plaît).
Précision importante: la procédure d'installation varie selon le système d'exploitation utilisé. Ici nous traiterons de l'installation d'ANOVManager que sous les environnements Linux, Windows et Mac, c'est-à-dire les environnements dominants sur le marché.
Pour faire fonctionner ANOVManager, il est d'abord important d'installer les composants suivants: Django
, Git
, virtualenv
et pip
.
Pour commencer, il faut disposer de l'utilitaire Git
puis cloner le projet depuis le dépôt officiel ici.
Sous Linux, l'installation de Git
ne se résume qu'à la commande suivante:
sudo apt install git # Installe l'utilitaire git sur la machine
Sous Windows par contre, il vous faudra télécharger un installateur ici puis l'exécuter jusqu'au bout tout en passant scrupuleusement chacune des étapes pour installer l'utilitaire Git
.
Concernant Mac,
Il est maintenant temps de cloner le projet, alors ouvrez une fenêtre de terminal (pour Linux et Mac) ou PowerShell (pour Windows) puis tapez les commandes suivantes:
git clone https://github.com/Vicken-Ghoubiguian/ANOVManager # Clone le projet ANOVManager sur la machine
cd ANOVManager # Change le répertoire courant pour celui du projet cloné ANOVManager
Il faut ensuite installer le serveur MySQL et son client respectif, créer la base de données ovfablab_database
pour gérer les données de l'application, créer l'utilisateur ovfablab_admin
sur le domaine localhost
qui permettra à l'application d'accéder à sa base de données puis de lui donner tous les privilèges sur cette même base.
Sous Linux, tout cela est possible grâce aux commandes suivantes à exécuter dans l'ordre:
sudo apt install mysql-server # Installation du serveur MySQL
sudo apt install mysql-client # Installation du client MySQL
sudo mysql -u root # Ouverture de l'interface de commandes MySQL pour l'utilisateur `root` (le super-utilisateur)
CREATE DATABASE ovfablab_database; # Création de la base de données ovfablab_database qui sera utilisée par l'application web
CREATE USER 'ovfablab_admin'@'localhost' IDENTIFIED BY 'mot_de_passe_de_l_admin_du_fablab'; # Création de l'utilisateur ovfablab_admin qui permettra à l'application web d'utiliser la base de données fraichement créée ci-dessus
GRANT ALL PRIVILEGES ON ovfablab_database.* TO 'ovfablab_admin'@'localhost'; # Accord de tous les privilèges sur la base de données ovfablab_database pour l'utilisateur ovfablab_admin
quit; # Fermeture de l'interface de commandes MySQL
Petite note: vous pouvez très bien modifier le nom de l'administateur de la base et son mot de passe si vous le souhaitez. Pour cela, il vous faut modifier les champs USER
et PASSWORD
de DATABASES
dans le fichier settings.py, à partir de la ligne 80.
Il est temps maintenant d'installer et de configurer l'écosystème Python sur votre machine. Cela commence par l'installation de la derniére version du language Python.
Sous Linux et Mac, Python y est nativement installé et il n'y a donc rien à faire. Ce n'est pas le cas sous Windows sur lequel vous devrez utiliser l'installateur disponible sur le site officiel de Python ici pour l'installer proprement sur votre machine.
sudo apt install python3-pip # Installation de l'utilitaire pip3 (utilitaire pip pour la version 3 de python) pour installer tous les packages python nécessaires
sudo apt install python3-venv # Installation de l'utilitaire python3-venv pour créer et configurer votre environement virtuel
sudo apt install python3-dev default-libmysqlclient-dev build-essential # Installation de tous les composants nécessaires pour le bon fonctionnement de mysqlclient
python3 -m venv votre_environnement_virtuel # Création de l'environnement virtuel
source votre_environnement_virtuel/bin/activate # Activation de votre environement virtuel
pip3 install -r requirements.txt # Installation de tous les packages python contenus dans le fichier requirements.txt
python3 manage.py migrate # Création de toutes les tables de base de données nécessaires pour le bon fonctionnement de l'application web
⚠️ si vous avez une erreur concernant l'instructionpython3 manage.py migrate
, ne paniquez pas et référez-vous d'abord à la section de résolution ici.
Maintenant que tout est en place, il est maintenant temps de démarrer l'application web. Pour cela, ouvrez de terminal (pour Linux et Mac) ou PowerShell (pour Windows) puis exécutez la commande suivante:
python manage.py runserver
Toutes mes félicitations: une fois cette commande exécutée, l'application fonctionne et est accessible ici.
Dans le cas où ANOVManager a été correctement installé et configuré selon les instructions données dans la section précédente (voir ici), il vous faudra réactiver votre environnement virtuel Python pour développer l'application web.
Pour cela, suivez les commandes suivantes dans cet ordre:
cd ANOVManager # Change le répertoire courant pour celui du projet cloné ANOVManager
source votre_environnement_virtuel/bin/activate # Activation de votre environement virtuel
Le prompt de votre terminal passera immédiatement de $
à (votre_environnement_virtuel)
.
Finalement pour activer l'application web, exécutez cette commande:
python3 manage.py runserver
Toutes mes félicitations, c'est maintenant à vous de jouer.
Comme précédemment, clonez le projet depuis le dépôt officiel puis vous rendre dans le répertoire correspondant à l'aide des commandes suivantes à exécuter dans l'ordre:
sudo apt install git # Installe l'utilitaire git sur la machine
git clone https://github.com/Vicken-Ghoubiguian/ANOVManager # Clone le projet ANOVManager sur la machine
cd ANOVManager # Change le répertoire courant pour celui du projet cloné ANOVManager
Le déployement de ANOVManager en production se fera grâce à Docker
et Docker compose
. Il est donc nécessaire de les installer d'abord avant toutes choses.
Si vous voulez faire ça rapidement, exécutez les commandes suivantes:
sudo apt install docker.io # Installe Docker sur la machine
sudo apt install docker-compose # Installe Docker compose sur la machine
Si vous voulez les installer proprement, rendez-vous sur Installer Docker et Installer Docker compose.
Une fois que tout est installé, exécutez la commande sudo docker-compose up
. Cette commande va construire et faire marcher les containers Docker de l'application web.
Une fois cette commande exécutée, l'application fonctionne et est accessible ici.
Toutes mes félicitations...
Voici une liste des commandes de base pour l'administration de fabmanager:
- Pour démarrer l'application web:
python3 manage.py runserver
- Pour démarrer l'application web en mode non sécurisé (dans le cas où le mode débug est désactivé):
python3 manage.py runserver --insecure
Petite note: pour lancer cette commande, il est nécessaire d'être dans le même répertoire que le projet.
Dans le développement d'ovfabmanager, il sera nécessaire de modifier la structure de la base de données en supprimant ou en ajoutant de nouvelles tables au modèle, les migrations sont faites pour ça. Pour enregistrer ces modifications dans le dêpot GitLab du projet, la procédure est très simple. Dans le répertoire racine du projet, exécutez les commandes suivantes dans l'ordre:
python3 manage.py makemigrations ovfabmanager # Crée des migrations pour le modèle de l'application web
python3 manage.py migrate # Applique les modifications dans la base de données
Pour enregistrer vos modifications dans le dépôt GitLab du projet, comitez puis pushez le fichier nouvellement créé (situé dans le répertoire migrations
dans le répertoire ovfabmanager
) sur le dêpot GitLab du projet.
Et voilà le travail !
Au cours du développement d'ANOVManager, de nombreux problèmes ont été soulevés puis réglés et de nombreux bugs ont été détéctés puis résolus. Il est très probable que vous rencontrerez des problèmes et des bugs similaires si vous décidez de déployer ANOVManager ou d'en développer votre propre version à partir d'un fork de ce projet. Voici donc la liste des problèmes et des bugs rencontrés décrits chacun avec détails et avec la procédure de résolution pas-à-pas: