Elyxia¶
Premier "gros" projet full-stack dans lequel je me lance. J'ai commencé ce projet pendant ma deuxième année de BUT afin de pouvoir appliquer la rigueur de gestion de projet et de qualité de code que j'ai apprise durant ma formation.
Contexte¶
Depuis un certain temps, j'ai fait l'acquisition d'un Raspberry Pi 5 me servant principalement de NAS et de serveur multimédia. Mon Nextcloud est en marche, mon Jellyfin survit même si le manque d'accélération matérielle pour l'encodage et le décodage se fait ressentir, mais tout va bien. Je ressens cependant un manque. Malgré l'instance de Portainer en fonctionnement, il me faudrait une page web avec tous mes services web pour y accéder rapidement. Avoir une page d'accueil. Ce besoin a été accentué par la découverte d'un nouveau framework web que je voulais absolument essayer. En est donc née Elyxia.
Structure¶
Je souhaitais que l'API soit complètement indépendante du front-end afin de faciliter le déploiement. La spécification de l'API est également publique, pour pouvoir réimplémenter l'API avec le langage ou le framework que l'on préfère, et pour avoir des clients diversifiés (dans l'idéal, je souhaiterais avoir un client web et une application QT).
Fonctionalités¶
Comme j'aime bien me prendre la tête, j'ai décidé de faire plus qu'une page statique. Premièrement, j'ai décidé d'avoir un contrôle d'accès. Après avoir défini un compte administrateur par défaut, il est possible de créer d'autres utilisateurs qui disposent d'un accès en lecture uniquement, puis des comptes d'administration qui peuvent rajouter des services et des utilisateurs. Puis, un système de groupe, afin de pouvoir affecter des services à des groupes d'utilisateurs. Enfin, on doit pouvoir ajouter des services (le but initial du projet) et pouvoir les affecter en fonction des groupes et des utilisateurs.
Avancement¶
Malheureusement, à cause d'un manque de temps et de motivation, le projet avance très lentement. Jusqu'à présent, seul le système de gestion des utilisateurs et d'authentification fonctionne, même s'il demanderait une refactorisation afin de simplifier le code.