Package: labandco
Lab&Co - solution métier pour fluidifier les relations entre chercheurs et administrationA propos de Lab&CoLab&Co est un progiciel permettant aux établissements de recherche ou d'enseignement et de recherche(universités, EPST, etc.) de fluidifier les relations entre les chercheurs (porteurs de projets) et l'administration.Il couvre notamment:Le recrutement de personnel sur contrat de projets (doctorants, bourses, CDD...)Les contrats de recherche (recherche partenariale, ANR, projets européens...)La valorisation de la recherche (logiciels, brevets, bases de donnée...)IllustrationHistoriqueLab&Co est développé parAbilianen partenariat avecWill Strategydepuis 2014 pour l'Université Pierre et Marie Curie (UPMC), devenue depuis Sorbonne Université.Il est utilisé par plusieurs centaines de chercheurs et la soixantaine de personnes travaillant à la DR&I (Direction de la Recherche et de l'Innovation).La version du code que vous consultez actuellement est la version "3.0" de l'application, qui été déployée fin 2019 à Sorbonne Université.Votre projetLab&Co peut être déployé dans votre établissement, après connexion à son annuaire LDAP et adaptation des modèles et des workflows à vos processus métiers.Contactez-nous à:contact@abilian.compour toute demande d'information.DéveloppementInstaller en 1 ligneSi votre machine de développement est "raisonnablement" configurée, vous pouvez installer Lab&Co localement en une ligne avec la commande:./install.pyDe manière alternative, si vous avezPoetryinstallé, vous pouvez tapper:poetry installInstaller un environnement de développementCréer et activer un virtualenv (Python 3.9 pour l'instant)Installer Poetryhttps://github.com/sdispater/poetryDans/etc/hosts, faire pointerlabster.localsurlocalhost.Tapper:poetry install
 yarn --cwd frontComment développperEn mode développement, il suffit de lancerflask devserver.Puis lancer le navigateur sur:http://labster.local:5000/Pour lancer les tests:pytestou mieuxtox.Il y d'autres commandes utiles, tapper justeflaskpour avoir la
liste.BDD de prodCréer une base Postgresqllabster:createdb labsterpuis:flask create-dbMigrationsflask db migrate
flask db upgradeDoc:http://alembic.zzzcomputing.com/en/latest/tutorial.htmlTestsTests unitaires:pytest
 yarn --cwd front run test:unitTests e2e:flask cypress
 flask testcafePour tester manuellement en tant qu'un autre utilisateur, utiliser l'urlbackdoor/uid=xxx(see blueprints/auth/cas.py).Tester l'envoi de mailsLancerpython -m smtpd -n -c DebuggingServer localhost:1025et dansDevConfig# MAIL_SUPPRESS_SEND = True
MAIL_SUPPRESS_SEND = False
MAIL_SERVER = 'localhost'
MAIL_PORT = 1025Ainsi les mais envoyés seront affichés sur stdout.Autre possibilité, mettre la variable que l'on veux changer (par rapport au défaut)
dans un fichier.env(similaire au fichier.flaskenvqui existe déjà).Le fichier.enva priorité sur.flaskenv.Pour les tests unitaires, voir la doc deflask-mail.ArchitectureL'application est constitué d'un backend en Python, utilisant notamment le framework Web Flask, l'ORM SQLAlchemy, et d'un front-end SPA en JavaScript utilisant le framework réactif Vuejs.La communication entre front-end et back-end se fait soit en utilisant le paradigme REST (sans HATEOAS), soit le protocole JSON-RPC 2.0.Le backend utilise également le framework Abilian-Core développé par Abilian. Il utilise également l'injection de dépendance grâce à la bibliothèque Injector (+ Flask-Injector).L'authentification se fait en utilisant le protocole CAS implémenté par l'Université.Modèle de données (simplifié)FAQL'application s'appelle-t-elle "Labster" ou "Lab&Co" ?Le projet s'appelait initialement "Labster", d'où le nom encore donné au package principal et à certaines variables ou constantes. Il s'appelle à présent "Lab&Co".