OpenPlane

a marqué ce sujet comme résolu.

Je pense avoir trouvé une solution. Électron est clairement trop lourd. PyGObject n'est pas multiplateforme et ne me permet pas de mettre toutes sortes de fantaisie tel que des graphiques interactifs, des cartes… Comment je vais faire ?

J'ai cherché dans pas mal de langage, j'ai essayé le Java (qui me plait beaucoup d'ailleurs, je m'y pencherais plus sérieusement un de ces 4), j'ai cherché des techno… Puis en fait, je suis revenu à ce bon vieux Python. Ce qu'il me fallait c'était :

  • Une solution multiplateforme
  • Quelque chose de super léger
  • Rapide et fluide
  • Facilement installable et utilisable
  • Où l'on puisse mettre du JavaScript

J'ai donc pensé à ces micro framework Python, tel de Flask, CherryPy ou encore Bottle. Et c'est ce dernier qui a retenu mon attention, et en effet, je pense avoir trouvé la solution à nos problèmes !

Un simple python3 run.py et voilà que le serveur est lancé, il suffit juste d'ouvrir son navigateur et de se rendre à l'adresse et puis de profiter d'OpenPlane depuis son navigateur ! Donc plus de soucis pour le JS.

Qu'en pensez-vous ?

Ah ça c'est sûr que tu fais difficilement plus multiplateforme. Ça me rappelle le projet Jupyter, que j'adore, eux aussi utilisent une interface web. Le truc sympa aussi c'est qu'avec un peu de bidouille tu peux imaginer une instance d'OpenPlane ouverte à tous avec user/mdp qu'un aéroclub donné ferait fonctionner. Seuls quelques comptes ont le droit de modifier des avions, et les comptes-rendus de vols seraient stockés utilisateur par utilisateur. Après ça reste un peu utopique mais j'aime bien la direction que ça prendrait.

C'est vrai que pas mal de possibilités s'ouvrent si je passe par une interface web. On peut tout a fait imaginer un système de compte, avec des administrateurs, des mécanos et des pilotes. Par contre je devrais inclure une dépendance, SQLite car je n'ai vraiment pas envie de m'amuser avec des fichiers (en plus tout le monde peut modifier son fichier pour devenir admin…).

Je pense vraiment opter pour ce système qui m'offre beaucoup, beaucoup plus de possibilités. Par contre, va falloir me laisser le temps de tout mettre en place car je n'ai plus PyGObject pour tout faire à ma place ! :p (Notamment niveau CSS, je pense prendre un framework).

PS : je n'abandonne pas pour autant le tutoriel sur Python et GTK+.


Voici ce que l'on peut imaginer :

Organisation du nouveau OpenPlane

+1 -0

Ah oui, pas bête. Je n'y avait pas pensé. Ça va simplifier la chose.

Je viens juste de me dire que si l'aéroclub veut utiliser OpenPlane, il va leur falloir un serveur ou alors un vieux PC, je ne pense pas qu'OpenPlane sera trop consommateur, ça devrait aller. :D

Je vais aussi m'obliger à documenter chaque fonction, chaque classe. Ainsi, vous pourrez réellement participer au code ou au moins le comprendre. Pour le moment je réfléchi à l'organisation des fichiers, les options et les fonctionnalités, je commencerais à coder une première version pour voir ce que ça donne plus tard.

EDIT : Je viens de pusher les premiers fichiers de cette nouvelle version d'OpenPlane sur une nouvelle branche nommé flask. Vous remarquerez que :

  • J'ai changé d'avis, je passe de Bottle à Flask (celui-ci étant beaucoup plus documenté)
  • Toutes les fonctions sont documentées (j'ai réglé PyCharm pour qu'il me force à les documenter :diable: )
  • Gestion des exceptions (ça me semblait important)
  • Utilisation d'une organisation se rapprochant du MVC

Voilà, je continue tranquillement à écrire mes fichiers du back end, puis je m'occuperais du front end après. :)

+0 -0

Je viens juste de me dire que si l'aéroclub veut utiliser OpenPlane, il va leur falloir un serveur ou alors un vieux PC, je ne pense pas qu'OpenPlane sera trop consommateur, ça devrait aller. :D

Tu ne peux pas mettre une instance "Global" sur un VPS pour tout le monde et pour les grands club qui voudrait avoir leur serveur puisse le faire ? Car selon moi si les gens doivent mettre en place, même si c'est simple, beaucoup repartirons.

J'ai du mal m'expliquer. Enfaite OpenPlane sera un serveur qui tournera sur la machine cliente par défaut. Mais le truc, c'est qu'en aéroclub, il n'y a rarement qu'un seul ordinateur et je pense que les gens voudrait que leurs données soit accessibles sur tous les ordinateurs du club.

Le problème de prendre un VPS… C'est qu'il faut payer, et ça, c'est hors de question. OpenPlane est gratuit et ouvert, je ne peux donc pas me permettre d'acheter des serveurs pour ça. En aéroclub, les logiciels compliqués à installer, on a l'habitude, je vais quand même essayer de simplifier un maximum.

J'espère que vous comprenez mieux ce que je compte faire maintenant ! :)

+2 -0

Je viens juste de me dire que si l'aéroclub veut utiliser OpenPlane, il va leur falloir un serveur ou alors un vieux PC, je ne pense pas qu'OpenPlane sera trop consommateur, ça devrait aller. :D

Wizix

C'est exactement ce que je pensais, ils doivent bien avoir quelqu'un qui possède un vieil ordinateur ! Même un raspberry pi avec une clé usb pourrait amplement suffire je pense !

Un serveur distribué ? Ça signifie que tous les ordinateurs sont des sortes de serveurs non ? Faut que je regarde comment faire ça, mais pourquoi pas. Après si ça complique l'installation, je suis moins pour. Mais pourquoi pas, bonne idée !

+0 -0

En effet, j'ai regardé et le distribué c'est au-dessus de mes conséquences. :-°

Et oui, quasiment tous les aéroclubs ont une box je pense car il faut qu'ils regardent les notams, les metars, les tafs… Qui sont tous sur internet. Donc ça peux le faire pour le raspi. Mais pour le moment, mon objectif est que ça fonctionne en local. J'ai d'ailleurs également changé de framework, je suis passé à Django. Pourquoi ? Parce qu'il est bien plus complet et propose tout ce dont j'ai besoin. En plus, je peux recevoir beaucoup de conseils des développeurs de ce site. ;)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte